From Robert Love's Linux System Programming (2007, O'Reilly), this is what is given in the first paragraph (Chapter 1, Page 10):
The file position’s maximum value is bounded only by the size of the C type used to store it, which is 64-bits in contemporary Linux.
But in the next paragraph he says:
A file may be empty (have a length of zero), and thus contain no valid bytes. The maximum file length, as with the maximum file position, is bounded only by limits on the sizes of the C types that the Linux kernel uses to manage files.
I know this might be very, very basic, but is he saying that the file size is limited by the FILE data type or the int data type?