Condividi tramite


fgetpos

Ottiene un indicatore di posizione file del flusso.

Sintassi

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

Parametri

stream
Flusso di destinazione.

pos
Archiviazione dell'indicatore di posizione.

Valore restituito

Se l'esito è positivo, fgetpos restituisce 0. In caso di errore, restituisce un valore diverso da zero e imposta errno su una delle costanti manifesto seguenti (definite in STDIO. H): EBADF, il che significa che il flusso specificato non è un puntatore di file valido o non è accessibile oppure EINVAL, ovvero il stream valore o il valore di pos non è valido, ad esempio se è un puntatore Null. Se stream o pos è un NULL puntatore, la funzione richiama il gestore di parametri non validi, come descritto in Convalida dei parametri.

Osservazioni:

La funzione fgetpos ottiene il valore corrente dell'indicatore della posizione file dell'argomento stream e lo archivia nell'oggetto a cui punta pos. La funzione fsetpos può successivamente usare le informazioni archiviate in pos per reimpostare il puntatore dell'argomento stream sulla propria posizione al momento in cui è stata chiamata fgetpos. Il valore pos è archiviato in un formato interno e può essere usato solo da fgetpos e fsetpos.

Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificare questo comportamento, vedere Stato globale in CRT.

Requisiti

Funzione Intestazione obbligatoria
fgetpos <stdio.h>

Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).

Esempio

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

Input: crt_fgetpos.txt

fgetpos gets a stream's file-position indicator.

Output crt_fgetpos.txt

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

Vedi anche

I/O di flusso
fsetpos