显示文件的指针位置

时间:2011-02-24 09:46:09

标签: c file-io

嗨,请各位告诉我如何显示指针位置 例如

fpos_t pos;

(fgetpos(fp,& pos) 如何显示pos值

感谢

3 个答案:

答案 0 :(得分:2)

为了便携地这样做,你不应该尝试显示那个pos值。 尝试使用ftell()代替。

long pos;
pos = ftell(fp);
printf("pos is %ld bytes\n", pos);

答案 1 :(得分:2)

你做不到。 fpos_t包含多于偏移:它具有正确重置具有移位状态的字符集的处理的信息。 ftell()为你提供了一个偏移量(但要注意,它的范围可以限制在可能的文件大小之下)。

答案 2 :(得分:0)

在某些Unix系统中,fpos_t相当于off_tlong int,但在其他系统中,它可能有不同的内部表示。

pos_t position;
fgetpos(stream, &position);
...
fsetpos(stream, &position);
printf("offset: %ld\n", position.__pos);
                ^^^              ^^^^^   

使用long整数数据类型可以正常工作,但我重复一遍fpos_t的内部表示因系统而异。