我应该使用fseek SEEK_END
我的问题很简单:
我应该使用带有SEEK_END的fseek来获取文件的末尾然后获取它的长度吗? 因为在男人身上说:
- 允许库实现无意义地支持SEEK_END(因此,使用它的代码没有真正的标准可移植性)。
现在我使用stat(来自C)哪个更好?
ftell
函数返回long,这意味着在ILP32系统上,您无法正确获取大于2GB的文件大小。 您应该使用stat
函数或类似函数来获取文件的大小; 如果您使用不同的函数名称(stat64)或定义预处理器宏以获取大文件的所需行为,请查看您所针对的操作系统的手册。
由于C ++从Cinheritance了fseek
和SEEK_END
,我在这里引用C标准:
C11(ISO / IEC 9899:201x)§7.21.9.2fseek function部分3
二进制流不需要有意义地支持具有SEEK_END值的
fseek
调用。