如何找到二进制文件的结尾?

Old*_*ool 0 c fopen file

我打开了一个二进制文件,如下所示

FILE *p;
p=fopen("filename.format","rb");
Run Code Online (Sandbox Code Playgroud)

如何找到文件末尾?

Jab*_*cky 5

fread 函数fread返回实际读取的字节数。因此,如果读取的字节数低于要读取的字节数,则可能位于文件末尾。

此外,该feof函数还会告诉您是否位于文件末尾。

要在不实际读取文件的情况下找出文件的大小:

  long Size;
  FILE *p;
  p = fopen("filename.format","rb");
  fseek (p, 0 , SEEK_END);
  Size = ftell (p) ;
  rewind (p);
Run Code Online (Sandbox Code Playgroud)

  • 根据标准“二进制流不需要有意义地支持带有 SEEK_END 值的 fseek 调用”。那么这在一般情况下真的有效吗? (2认同)