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