Czytając lub zapisując do pliku automatycznie przesuwamy wskaźnik aktualnej pozycji w pliku. Ale możemy ten wskaźnik także przesuwać "ręcznie".
Aktualną pozycję w pliku możemy odczytać korzystając z funkcji
long int ftell ( FILE * stream ); int fgetpos ( FILE * stream, fpos_t * position );
Aby sprawdzić czy osiągnięty został koniec pliku możemy użyć funkcji
int feof(FILE * stream);
Jeżeli osiągnieto koniec pliku to kolejne operacje na pliku nie będą miały efektu chyba, że użyjemy jedna z funkcji
void rewind( FILE * stream ); int fseek ( FILE * stream, long int offset, int origin ); int fsetpos ( FILE * stream, const fpos_t * pos );