2012-08-07 11 views
13

Ich habe zwei Methoden bemerkt zu Beginn einer Dateifseek vs zurückspulen?

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

und

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

Was wäre Unterschied, wenn ein zwischen diesen Methoden zurückzukehren?

Antwort

15

Sie sind grundsätzlich zwei verschiedene Möglichkeiten, das gleiche zu erreichen: Setzen Sie den Zeiger auf den Anfang der Datei. Der einzige Unterschied besteht darin, dass rewind den Fehlerindikator ebenfalls löscht.

Wenn Sie die Wahl haben, sollten Sie fseek verwenden. Dies liegt daran, dass rewind keine Ganzzahl zurückgibt, die angibt, ob der Vorgang erfolgreich war.

3

Wenn fseek() kehrt Erfolg, es wird klar, auch die End-of-Datei-Anzeige, während rewind() nicht tun, so