Namespaces
Variants

fgetpos

De fr.cppreference.net
< c | io
 
 
Entrée/sortie fichier
Types et objets
        
Fonctions
Accès aux fichiers
(C95)
Entrée/sortie non formatée
(C95)(C95)
(C95)
(C95)(C95)
(C95)
(C95)

Entrée formatée
Entrée/sortie directe
Sortie formatée
Positionnement dans le fichier
Gestion des erreurs
Opérations sur les fichiers
 
Défini dans l'en-tête <stdio.h>
int fgetpos( FILE* stream, fpos_t* pos );
(jusqu'à C99)
int fgetpos( FILE* restrict stream, fpos_t* restrict pos );
(depuis C99)

Obtient l'indicateur de position dans le fichier et l'état d'analyse actuel (le cas échéant) pour le flux de fichier stream et les stocke dans l'objet pointé par pos. La valeur stockée n'a de sens que comme entrée pour fsetpos.

Paramètres

stream - flux de fichier à examiner
pos - pointeur vers un objet fpos_t pour stocker l'indicateur de position dans le fichier

Valeur de retour

0 en cas de succès, valeur non nulle sinon.

Exemple

#include <assert.h>
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    // prepare a file holding 4 values of type double
    enum {SIZE = 4};
    FILE* fp = fopen("test.bin", "wb");
    assert(fp);
    int rc = fwrite((double[SIZE]){1.1, 2.2, 3.3, 4.4}, sizeof(double), SIZE, fp);
    assert(rc == SIZE);
    fclose(fp);

    // demo using fsetpos to return to the beginning of a file
    fp = fopen("test.bin", "rb");
    fpos_t pos;
    fgetpos(fp, &pos);               // store start of file in pos
    double d;
    rc = fread(&d, sizeof d, 1, fp); // read the first double
    assert(rc == 1);
    printf("First value in the file: %.1f\n", d);
    fsetpos(fp,&pos);                // move file position back to the start of the file
    rc = fread(&d, sizeof d, 1, fp); // read the first double again
    assert(rc == 1);
    printf("First value in the file again: %.1f\n", d);
    fclose(fp);

    // demo error handling
    rc = fsetpos(stdin, &pos);
    if (rc)
        perror("could not fsetpos stdin");
}

Sortie :

First value in the file: 1.1
First value in the file again: 1.1
could not fsetpos stdin: Illegal seek

Références

  • Norme C23 (ISO/IEC 9899:2024) :
  • 7.21.9.1 La fonction fgetpos (p: TBD)
  • Norme C17 (ISO/IEC 9899:2018) :
  • 7.21.9.1 La fonction fgetpos (p: TBD)
  • Norme C11 (ISO/IEC 9899:2011) :
  • 7.21.9.1 La fonction fgetpos (p: 336)
  • Norme C99 (ISO/IEC 9899:1999) :
  • 7.19.9.1 La fonction fgetpos (p: 302)
  • Norme C89/C90 (ISO/IEC 9899:1990) :
  • 4.9.9.1 La fonction fgetpos

Voir aussi

retourne l'indicateur de position actuel dans le fichier
(fonction)
déplace l'indicateur de position dans le fichier vers un emplacement spécifique
(fonction)
déplace l'indicateur de position dans le fichier vers un emplacement spécifique
(fonction)
Documentation C++ pour fgetpos