fgetpos

Obtém o indicador de posição do arquivo do fluxo.

Sintaxe

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

Parâmetros

stream
O fluxo de destino.

pos
Armazenamento do indicador de posição.

Retornar valor

Se tiver êxito, fgetpos retornará 0. Em caso de falha, ele retorna um valor diferente de zero e define errno uma das seguintes constantes de manifesto (definidas em STDIO. H): EBADF, o que significa que o fluxo especificado não é um ponteiro de arquivo válido ou não está acessível, ou , o que significa que o valor ou EINVALo stream valor de pos é inválido, como se um dos dois fosse um ponteiro nulo. Se stream ou pos for um NULL ponteiro, a função invocará o manipulador de parâmetros inválido, conforme descrito em Validação de parâmetro.

Comentários

A função fgetpos obtém o valor atual do indicador de posição do arquivo do argumento stream e o armazena no objeto apontado por pos. A função fsetpos pode, posteriormente, usar informações armazenadas em pos para redefinir o ponteiro do argumento stream para sua posição no momento em que fgetpos foi chamado. O valor pos é armazenado em um formato interno e é destinado para uso somente por fgetpos e fsetpos.

Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, consulte Estado global na CRT.

Requisitos

Função Cabeçalho necessário
fgetpos <stdio.h>

Para obter informações sobre compatibilidade, consulte Compatibilidade.

Exemplo

// 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.

Saída crt_fgetpos.txt

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

Confira também

E/S de fluxo
fsetpos