fgetpos

 

Pour obtenir la dernière documentation sur Visual Studio 2017, consultez Documentation Visual Studio 2017.

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

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

Paramètres

stream
Flux de données cible.

pos
Stockage de l’indicateur de position.

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 à un des éléments suivants du manifeste de constantes (définis dans STDIO. (H) : EBADF, ce qui signifie 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 stream valeur ou la valeur de pos est non valide, par exemple si est soit un pointeur null. Si stream ou pos est un NULL pointeur, la fonction appelle le Gestionnaire de paramètre non valide, comme décrit dans Validation de paramètre.

Le fgetpos extrait la valeur actuelle de la stream indicateur de position de fichier et le stocke dans l’objet désigné par l’argument pos. Le fsetpos fonction peut utiliser ultérieurement les informations stockées dans pos pour réinitialiser le stream pointeur de l’argument à sa position en temps fgetpos a été appelée. Le pos valeur est stockée dans un format interne et est destinée uniquement par fgetpos et fsetpos.

FonctionEn-tête requis
fgetpos<stdio.h>

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

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

fgetpos gets a stream's file-position indicator.  

Sortie crt_fgetpos.txt

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

System::IO::FileStream::position

Flux d’e/s
fsetpos

Afficher: