...a właściwie chyba tylko z funkcją fread()....

Mam strukturę, składającą się z 5 liczb całkowitych bez znaku. Dla każdego rekordu generuje te liczby losowo i zapisuje je do pliku funkcją fwrite:

fwrite(&pieciokat,sizeof(pieciokat),1,plik);

Czynność tę wykonuję w pętli n razy. Kiedy n rekordów zostanie poprawnie zapisanych, zamykam plik i przechodzę do funkcji która ma mi te rekordy odczytać. I tu pojawia się problem. Odczytuje rekord następująco(również w pętli, n razy):

fread(&pieciokat,sizeof(pieciokat),1,plik);

Gdy n mam np. 100 lub więcej, to po kilkunastu odczytach wyskakuje mi że jest EOF (sprawdzam to funkcją feof() ).
Jak to możliwe, skoro te 100 czy więcej rekordów zapisało się w pliku z powodzeniem? Jak po kilkunastu odczytach może być już EOF?
Jeśli ktoś wie co tu się dzieje, bardzo proszę o pomoc.
Pozdrawiam.

PS. Jeśli okaże się to pomocne, mogę umieścić cały kod tych funkcji.