fgetpos

Obtiene un indicador de posición de archivo de la secuencia.

Sintaxis

int fgetpos(
   FILE *stream,
   fpos_t *pos
);

Parámetros

stream
Secuencia de destino.

pos
Almacenamiento del indicador de posición.

Valor devuelto

Si la operación se realiza correctamente, fgetpos devuelve 0. En caso de error, devuelve un valor distinto de cero y establece errno en una de las siguientes constantes de manifiesto (definidas en STDIO. H): EBADF, lo que significa que la secuencia especificada no es un puntero de archivo válido o no es accesible, o EINVAL, lo que significa que el stream valor o el valor de pos no es válido, como si alguno de ellos es un puntero nulo. Si stream o pos es un NULL puntero, la función invoca el controlador de parámetros no válidos, como se describe en Validación de parámetros.

Comentarios

La función fgetpos obtiene el valor actual del indicador de posición de archivo del argumento stream y lo almacena en el objeto al que apunta pos. La función fsetpos puede usar más adelante información almacenada en pos para restablecer el puntero del argumento stream a su posición en el momento en que se ha llamado a fgetpos. El valor pos se almacena en un formato interno que está previsto para uso exclusivo de fgetpos y fsetpos.

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

Función Encabezado necesario
fgetpos <stdio.h>

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

Ejemplo

// crt_fgetpos.c
// This program uses fgetpos and fsetpos to
// return to a location in a file.

#include <stdio.h>

int main( void )
{
   FILE   *stream;
   fpos_t pos;
   char   buffer[20];

   if( fopen_s( &stream, "crt_fgetpos.txt", "rb" ) ) {
      perror( "Trouble opening file" );
      return -1;
   }

   // Read some data and then save the position.
   fread( buffer, sizeof( char ), 8, stream );
   if( fgetpos( stream, &pos ) != 0 ) {
      perror( "fgetpos error" );
      return -1;
   }

   fread( buffer, sizeof( char ), 13, stream );
   printf( "after fgetpos: %.13s\n", buffer );

   // Restore to old position and read data
   if( fsetpos( stream, &pos ) != 0 ) {
      perror( "fsetpos error" );
      return -1;
   }

   fread( buffer, sizeof( char ), 13, stream );
   printf( "after fsetpos: %.13s\n", buffer );
   fclose( stream );
}

Entrada: crt_fgetpos.txt

fgetpos gets a stream's file-position indicator.

Salida: crt_fgetpos.txt

after fgetpos: gets a stream
after fsetpos: gets a stream

Consulte también

E/S de secuencia
fsetpos