fread()表现得很奇怪

1 c fread

我在我的C程序中遇到问题,在我使用之后fread(),文件指针有时会转到文件的末尾.

我会尝试更好地解释 - 代码看起来像:

dummy = ftell(fp);
fread(&buf, sizeof(unsigned char), 8, fp);
dummy = ftell(fp);
Run Code Online (Sandbox Code Playgroud)

哪个fp是打开文件的文件指针(用"w +"打开它,我用它作为二进制文件,我知道我也应该有一个"b",但我听说它不是很重要添加它..), dummy只是一个unsigned long变量,而且bufunsigned char[8]

现在,在调试时,在ftell以前fread,dummy是262062在ftellfread,dummy是262640虽然我只是"感动" 8个字节..

有没有人知道这可能是什么原因..?谢谢你的帮助 :)

Car*_*rum 5

如果你不使用b打开文件,ftell()不会返回真相,只是一种只对你有用的"cookie" fseek().那里有很多不同的实现; 查看系统的手册页以了解更多信息.