Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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