Sounds like someone is going for a hail mary pass ;) You are probably in luck though.
int main (int argc, const char *argv)
Compiled and run on current Raspbian, the output is:
long gives the same thing -- but keep reading.
What is the data model inuse?
The basic math model: 32 / 8 = 4 just as 4 * 8 = 32. To be fair it's what that article refers to as ILP32 but wrongly states it is used on linux x86-64 -- it isn't, but then Raspbian isn't linux x86-64. It's linux armhf.
In particular I'm looking at addressing files that are >4Gb, so a pure 32bit data model fails.
In that context, this is only really a problem if you intend to load the entire file into RAM, which you can't do anyway. A pointer points to memory addresses, not file locations. There is a correspondence with regard to binary objects loaded as code, but I am sure this is not what you are up to. You can index a file by byte number, and while there are more than 4 billion bytes in a file > 4GB in size, you don't have to use a pointer to store that number -- you can use, eg., a
uint64_t, which holds values from 0 to 18446744073709551615. Don't forget:
// Or for C++ tidiness <cinttypes>.
Using that stuff is more portable (it's part of the C99 standard) than implementation dependent things such as the size of longs and pointers. There is no ambiguity about what
uint64_t refers to.