Partager via


fgetpos

Obtient l’indicateur de position de fichier d’un flux.

Syntaxe

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

Paramètres

stream
Flux cible.

pos
Stockage de l’indicateur de position.

Valeur retournée

En cas de réussite, fgetpos retourne 0. En cas d’échec, elle retourne une valeur différente de zéro et définit errno l’une des constantes manifeste suivantes (définies dans STDIO. H : EBADF, ce qui signifie que le flux spécifié n’est pas un pointeur de fichier valide ou n’est pas accessible, ou EINVAL, ce qui signifie que la stream valeur ou la valeur de pos n’est pas valide, par exemple s’il s’agit d’un pointeur Null. Si stream ou pos est un NULL pointeur, la fonction appelle le gestionnaire de paramètres non valide, comme décrit dans la validation des paramètres.

Notes

La fonction fgetpos obtient la valeur actuelle de l’indicateur de position de fichier de l’argument stream et la stocke dans l’objet désigné par pos. La fonction fsetpos peut utiliser ultérieurement les informations stockées dans pos pour réinitialiser le pointeur de l’argument stream à la position qu’il occupait au moment de l’appel à fgetpos. La valeur pos est stockée dans un format interne en vue d’une utilisation par fgetpos et fsetpos uniquement.

Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.

Spécifications

Fonction En-tête requis
fgetpos <stdio.h>

Pour plus d’informations sur la compatibilité, consultez Compatibility.

Exemple

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

Entrée : crt_fgetpos.txt

fgetpos gets a stream's file-position indicator.

Sortie : crt_fgetpos.txt

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

Voir aussi

E/S de flux
fsetpos