This question already has an answer here:
My question is simple:
Should I use fseek with SEEK_END to get to the end of a file and then get the length of it ? Because in the man it is said:
- Library implementations are allowed to not meaningfully support SEEK_END (therefore, code using it has no real standard portability).
Right now I am using stat (from C) which is better ?
The ftell
function returns a long, which means that on an ILP32 system you can't correctly get the size of a file larger than 2GB. You should use the stat
function or similar to get the size of a file; check the manual for the operating system you're targeting in case you have use a different function name (stat64) or define a preprocessor macro to get the desired behavior for large files.
Since C++ inherits fseek
and SEEK_END
from C, I'm quoting the C standard here:
C11(ISO/IEC 9899:201x) §7.21.9.2 The fseek function section 3
A binary stream need not meaningfully support
fseek
calls with a whence value ofSEEK_END
.
来源:https://stackoverflow.com/questions/19045637/should-i-use-fseek-seek-end