我在我的C程序中遇到问题,在使用fread()
之后,文件指针有时会转到文件的末尾。
我会尝试更好地解释 - 代码看起来像:
dummy = ftell(fp);
fread(&buf, sizeof(unsigned char), 8, fp);
dummy = ftell(fp);
其中fp
是指向打开文件的文件指针(用“w +”打开它,我用它作为二进制文件,我知道我也应该在那里有一个“b” ,但我听说添加它不是很重要..),
dummy
只是一个unsigned long
变量,
buf
是unsigned char[8]
现在,在调试时,ftell
之前的fread
,dummy
是262062
在ftell
之后的fread
,dummy
是262640
即使我只'移动'8字节..
有没有人知道这可能是什么原因..? 谢谢你的帮助:))
答案 0 :(得分:5)
如果您不使用b
打开文件,ftell()
不会返回真相,只是一种仅对fseek()
有用的“Cookie”。那里有很多不同的实现;查看系统的手册页以了解更多信息。