2012-08-07 10 views
13

Zauważyłem dwie metody aby powrócić do początku plikufseek vs rewind?

FILE *fp = fopen("test.bin", "r") 
fseek(fp, 0, SEEK_END); 
rewind(fp); 

a jeśli

FILE *fp = fopen("test.bin", "r") 
fseek(fp, 0, SEEK_END); 
fseek(fp, 0, SEEK_SET); 

Jaka byłaby różnica między tymi metodami dowolny?

Odpowiedz

15

Są to zasadniczo dwa różne sposoby osiągnięcia tego samego: ustaw wskaźnik na początku pliku. Jedyna różnica polega na tym, że rewind usuwa również wskaźnik błędu.

Jeśli masz wybór, powinieneś użyć fseek. Dzieje się tak, ponieważ rewind nie zwraca liczby całkowitej wskazującej, czy operacja zakończyła się powodzeniem.

3

Jeśli fseek() powraca sukces, będzie to również skasować wskaźnik EOF, natomiast rewind() nie zrobić