开发者

fread() behaves weird

开发者 https://www.devze.com 2022-12-24 03:56 出处:网络
I have a problem in a C program of mine where after I use fread(), the file pointer goes to the end of the file sometimes.

I have a problem in a C program of mine where after I use fread(), the file pointer goes to the end of the file sometimes.

I'll try to explain better - the code looks something like:

dummy = ftell(fp);
fread(&buf, sizeof(unsigned char), 8, fp);
dummy = ftell(fp);

where fp is a file pointer to an opened file (opened it with "w+", I'm using it as a binary file and I know i'm supposed to have a "b" in there too, but I heard its not really important to add it..), dummy is just an unsigned long variable, and buf is unsigned char[8]

now, when debugging, at 开发者_开发问答the ftell before the fread, dummy is 262062 at the ftell after the fread, dummy is 262640 even though I only 'moved' 8 bytes..

does anyone have any idea what can be the cause of this..? thanks for your help :)


If you don't use the b to open the file, ftell() doesn't return the truth, just a sort of "cookie" that's only useful to fseek(). There are a lot of different implementations out there; check the man page for your system to find out more.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号