La funzione rewind permette di riposizionarsi all'inizio di un file. Nel caso di file aperti in lettura, è equivalente a chiudere il file ed aprirlo di nuovo. Il programma inizio.c riportato qui sotto fa vedere una applicazione di questa funzione: un file viene letto e stampato su schermo riga per riga. Quando si arriva alla fine, viene chiamata la funzione rewind che ``riavvolge'' il file, ossia ci riporta all'inizio del file: la successiva operazione di lettura legge l'inizio del file. Il programma effettua poi un secondo ciclo di lettura e stampa. L'effetto finale è quello di leggere e stampare due volte il file.
/* Stampa due volte un file. */ #include<stdlib.h> #include<stdio.h> int main() { FILE *fd; char buf[200]; char *res; /* apre il file */ fd=fopen("array.txt", "r"); if( fd==NULL ) { perror("Errore in apertura del file"); exit(1); } /* legge e stampa fino all'eof */ while(1) { res=fgets(buf, 200, fd); if( res==NULL ) break; printf("%s", buf); } /* ricomincia dall'inizio */ rewind(fd); /* legge e stampa fino all'eof */ while(1) { res=fgets(buf, 200, fd); if( res==NULL ) break; printf("%s", buf); } /* chiude il file */ fclose(fd); return 0; }