Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 我应该使用fseek SEEK\u END吗_C_Fseek - Fatal编程技术网

C 我应该使用fseek SEEK\u END吗

C 我应该使用fseek SEEK\u END吗,c,fseek,C,Fseek,我的问题很简单: 我应该使用fseek和SEEK_END来获取文件的结尾,然后获取文件的长度吗? 因为《男人》里说: 库实现不允许有意义地支持SEEK_END(因此,使用它的代码没有真正的标准可移植性) 现在我正在使用stat(来自C)哪个更好?ftell函数返回一个long,这意味着在ILP32系统上无法正确获得大于2GB的文件大小。您应该使用stat功能或类似功能获取文件的大小;检查您正在操作的操作系统的手册,如果您使用了不同的函数名(STAT64)或定义预处理器宏以获得大文件所需的行为

我的问题很简单:

我应该使用fseek和SEEK_END来获取文件的结尾,然后获取文件的长度吗? 因为《男人》里说:

  • 库实现不允许有意义地支持SEEK_END(因此,使用它的代码没有真正的标准可移植性)

现在我正在使用stat(来自C)哪个更好?

ftell函数返回一个long,这意味着在ILP32系统上无法正确获得大于2GB的文件大小。您应该使用
stat
功能或类似功能获取文件的大小;检查您正在操作的操作系统的手册,如果您使用了不同的函数名(STAT64)或定义预处理器宏以获得大文件所需的行为。

< P>因为C++继承了<代码> fScript < /C> >和<代码> SekkyEng/<代码>,我引用C标准:

C11(ISO/IEC 9899:201x)§7.21.9.2 fseek功能第3节 二进制流不需要有意义地支持whence值为
SEEK\u END
fseek
调用


您提到了
stat
man
,那么假设您使用的是Linux或其他Unix是否安全?你关心其他平台吗?这个问题很好,但你的措辞方式使它严重基于观点,并导致讨论,这是不可取的。请参阅。