should I use fseek SEEK_END [duplicate]

こ雲淡風輕ζ 提交于 2019-12-01 07:09:04

问题


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 ?


回答1:


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.




回答2:


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 of SEEK_END.



来源:https://stackoverflow.com/questions/19045637/should-i-use-fseek-seek-end

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!