fgetposfgetpos

Obtient l’indicateur de position de fichier d’un flux.Gets a stream's file-position indicator.

SyntaxeSyntax

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

ParamètresParameters

streamstream
Flux cible.Target stream.

imprimpos
Stockage de l’indicateur de position.Position-indicator storage.

Valeur de retourReturn Value

En cas de réussite, fgetpos retourne 0.If successful, fgetpos returns 0. En cas d’échec, elle retourne une valeur différente de zéro et définit errno sur l’une des constantes manifestes 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 valeur de flux ou la valeur de pos n’est pas valide, par exemple si est un pointeur null.On failure, it returns a nonzero value and sets errno to one of the following manifest constants (defined in STDIO.H): EBADF, which means the specified stream is not a valid file pointer or is not accessible, or EINVAL, which means the stream value or the value of pos is invalid, such as if either is a null pointer. Si Stream ou pos est un pointeur null , la fonction appelle le gestionnaire de paramètre non valide, comme décrit dans validation de paramètre.If stream or pos is a NULL pointer, the function invokes the invalid parameter handler, as described in Parameter Validation.

NotesRemarks

La fonction fgetpos obtient la valeur actuelle de l’indicateur de position de fichier de l’argument de flux 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 de flux à sa position au moment de l’appel de fgetpos .The fgetpos function gets the current value of the stream argument's file-position indicator and stores it in the object pointed to by pos. The fsetpos function can later use information stored in pos to reset the stream argument's pointer to its position at the time fgetpos was called. La valeur pos est stockée dans un format interne et est destinée à être utilisée uniquement par fgetpos et fsetpos.The pos value is stored in an internal format and is intended for use only by fgetpos and fsetpos.

Configuration requiseRequirements

FonctionFunction En-tête requisRequired header
fgetposfgetpos <stdio.h><stdio.h>

Pour plus d’informations sur la compatibilité, voir consultez Compatibilité.For additional compatibility information, see Compatibility.

ExemplesExample

// 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.txtInput: crt_fgetpos.txt

fgetpos gets a stream's file-position indicator.

Sortie : crt_fgetpos.txtOutput crt_fgetpos.txt

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

Voir aussiSee also

E/S de fluxStream I/O
fsetposfsetpos