I am making a program that reads disk images in C. I am trying to make something portable, so I do not want to use too many OS-specific libraries. I am aware there are many disk images that are very large files but I am unsure how to support these files.
I have read up on fseek
and it seems to use a long int
which is not guaranteed to support values over 231-1. fsetpos
seems to support a larger value with fpos_t
but an absolute position cannot be specified. I have also though about using several relative seeks with fseek
but am unsure if this is portable.
How can I support portably support large files in C?
There is no portable way.
On Linux there are fseeko()
and ftello()
, pair (need some defines, check ftello()
).
On Windows, I believe you have to use _fseeki64()
and _ftelli64()
#ifdef
is your friend