Partager via


fgetpos

Obtient l'indicateur de position d'un flux de données.

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

Paramètres

  • stream
    Flux de données cible.

  • pos
    Stockage de positions indicateur.

Valeur de retour

En cas de réussite, retourne fgetpos. En cas de échec, retourne une valeur différente de zéro et définit errno à l'une des constantes manifestes suivantes (définies dans STDIO.H) : EBADF, c'est-à-dire que le flux de données spécifié n'est pas un pointeur de fichier valide ou n'est pas accessible, ou EINVAL, ce qui signifie que la valeur destream ou la valeur depos n'est pas valide, par exemple si l'un deux est un pointeur NULL. Sistream ou pos est un pointeur NULL la fonction appelle le gestionnaire de paramètres non valides comme décrit dans Validation de paramètre.

Notes

La fonction fgetpos obtient la valeur actuelle de l'indicateur d'emplacement de fichier de l'argument indicateur de position de fichiers stream et les stocke dans l'objet référencé par pos. La fonction fsetpos peut utiliser par la suite les informations stockées dans pos pour réinitialiser le pointeur de l'argument stream à sa position lorsque fgetpos a été appelé. La valeur pos est stockée dans un format interne et est destinée à être utilisée uniquement par fgetpos et fsetpos.

Configuration requise

Fonction

En-tête requis

fgetpos

<stdio.h>

Pour plus d'informations sur la compatibilité, consultez Compatibilité dans l'introduction.

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

Équivalent .NET Framework

System::IO::FileStream::FileStream

Voir aussi

Référence

E/S de flux

fsetpos