Compartir a través de


rewind

Cambia la posición del puntero de archivo al principio de un archivo.

Sintaxis

void rewind(
   FILE *stream
);

Parámetros

stream
Puntero a la estructura FILE .

Comentarios

La rewind función cambia la posición del puntero de archivo asociado stream al principio del archivo. Una llamada a es similar a rewind

(void) fseek(stream, 0L, SEEK_SET );

Sin embargo, a diferencia fseekde , rewind borra los indicadores de error de la secuencia y el indicador de fin de archivo. Además, a diferencia fseekde , rewind no devuelve un valor para indicar si el puntero se ha movido correctamente.

Para borrar el búfer de teclado, use rewind con la secuencia stdin, que está asociada al teclado de forma predeterminada.

Si stream es un NULL puntero, se invoca el controlador de parámetros no válidos, como se describe en Validación de parámetros. Si la ejecución puede continuar, esta función devuelve y errno se establece en EINVAL.

Para información sobre estos y otros códigos de error, consulte errno, _doserrno_sys_errlist y _sys_nerr.

De manera predeterminada, el estado global de esta función está limitado a la aplicación. Para cambiar este comportamiento, consulte Estado global en CRT.

Requisitos

Routine Encabezado necesario
rewind <stdio.h>

Para obtener más información sobre compatibilidad, consulte Compatibilidad.

Bibliotecas

Todas las versiones de las bibliotecas en tiempo de ejecución de C.

Ejemplo

// crt_rewind.c
/* This program first opens a file named
* crt_rewind.out for input and output and writes two
* integers to the file. Next, it uses rewind to
* reposition the file pointer to the beginning of
* the file and reads the data back in.
*/
#include <stdio.h>

int main( void )
{
   FILE *stream;
   int data1, data2;

   data1 = 1;
   data2 = -37;

   fopen_s( &stream, "crt_rewind.out", "w+" );
   if( stream != NULL )
   {
      fprintf( stream, "%d %d", data1, data2 );
      printf( "The values written are: %d and %d\n", data1, data2 );
      rewind( stream );
      fscanf_s( stream, "%d %d", &data1, &data2 );
      printf( "The values read are: %d and %d\n", data1, data2 );
      fclose( stream );
   }
}

Output

The values written are: 1 and -37
The values read are: 1 and -37

Consulte también

E/S de secuencia