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;
}