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