stdio.h
Función rewind ANSI C
void rewind(FILE *stream);
La función rewind coloca el indicador de posición de fichero para el stream apuntado por stream al comienzo del fichero. Es equivalente a (void) fseek( stream, 0L, SEEK_SET ) excepto que el indicador de errores para el stream es despejado.
Valor de retorno:
La función rewind no retorna ningún valor.
Ejemplo:
#include <stdio.h>
int main()
{
char nombre[11] = "datos4.dat",
mensaje[81]="Esto es nua rpueba usando fgetpos y fsetpos.";
FILE *fichero;
fpos_t posicion=0, comienzo;
fichero = fopen( nombre, "w+" );
printf( "Fichero: %s -> ", nombre );
if( fichero )
printf( "creado (ABIERTO)\n" );
else
{
printf( "Error (NO ABIERTO)\n" );
return 1;
}
fgetpos( fichero, &comienzo );
printf( "Posicion del fichero: %d\n", posicion );
fprintf( fichero, mensaje );
printf( "\nEscrito: \"%s\"\n", mensaje );
fgetpos( fichero, &posicion );
printf( "Posicion del fichero: %d\n", posicion );
fsetpos( fichero, &comienzo );
fprintf( fichero, "%s", "Esto es una prueba" );
printf( "Corregiendo errores...Escrito: \"Esto es una prueba\"\n" );
fgetpos( fichero, &posicion );
printf( "Posicion del fichero: %d\n", posicion );
rewind( fichero );
printf( "\"Rebobinando\" el fichero -> Vuelta al comienzo\n" );
fgetpos( fichero, &posicion );
printf( "Posicion del fichero: %d\n", posicion );
printf( "\nLeyendo del fichero \"%s\"\n", nombre );
fgets( mensaje, 81, fichero );
printf( "\"%s\"\n\n", mensaje );
fgetpos( fichero, &posicion );
printf( "Posicion del fichero: %d\n", posicion );
if( !fclose(fichero) )
printf( "Fichero cerrado\n" );
else
{
printf( "Error: fichero NO CERRADO\n" );
return 1;
}
return 0;
}