отображать положение указателя файла - PullRequest
1 голос
/ 24 февраля 2011

привет, пожалуйста, скажите мне, как отобразить положение указателя например,

fpos_t pos;

(fgetpos (fp, & pos) как отобразить pos значение

спасибо

Ответы [ 3 ]

2 голосов
/ 24 февраля 2011

Вы не можете. Fpos_t содержит больше, чем смещение: он имеет информацию для правильного сброса обработки наборов символов, имеющих состояние сдвига. ftell () дает вам смещение (но обратите внимание, его диапазон может быть ограничен меньшим, чем возможный размер файла).

2 голосов
/ 24 февраля 2011

Чтобы сделать это переносимо, вы не должны пытаться отображать это значение pos. Попробуйте вместо этого использовать ftell ().

long pos;
pos = ftell(fp);
printf("pos is %ld bytes\n", pos);
0 голосов
/ 16 марта 2016

В некоторых системах 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 варьируется от системы к системе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...