Q
显示指针位置
0
A
回答
2
可移植,你不应该试图显示POS值做到这一点。 尝试使用FTELL() 。而不是
long pos;
pos = ftell(fp);
printf("pos is %ld bytes\n", pos);
2
不能将fpos_t包含超过偏移。FTELL有信息来正确复位都具有换档状态的字符集的处理()给你一个取舍et(但要注意,它的范围可以限制为小于可能的文件大小)。
0
在某些Unix系统中,fpos_t
相当于off_t
或long int
,但在其他系统中,它可能具有不同的内部表示形式。
pos_t position;
fgetpos(stream, &position);
...
fsetpos(stream, &position);
printf("offset: %ld\n", position.__pos);
^^^ ^^^^^
随着long
整数数据类型,它工作正常,但我重复的fpos_t
内部表示从系统而异。