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