Fonction de bibliothèque C - fgetpos ()

La description

La fonction de bibliothèque C int fgetpos(FILE *stream, fpos_t *pos) obtient la position actuelle du fichier stream et l'écrit dans pos.

Déclaration

Voici la déclaration de la fonction fgetpos ().

int fgetpos(FILE *stream, fpos_t *pos)

Paramètres

  • stream - Il s'agit du pointeur vers un objet FILE qui identifie le flux.

  • pos - Ceci est le pointeur vers un objet fpos_t.

Valeur de retour

Cette fonction renvoie zéro en cas de succès, sinon une valeur non nulle en cas d'erreur.

Exemple

L'exemple suivant montre l'utilisation de la fonction fgetpos ().

#include <stdio.h>

int main () {
   FILE *fp;
   fpos_t position;

   fp = fopen("file.txt","w+");
   fgetpos(fp, &position);
   fputs("Hello, World!", fp);
  
   fsetpos(fp, &position);
   fputs("This is going to override previous content", fp);
   fclose(fp);
   
   return(0);
}

Laissez-nous compiler et exécuter le programme ci-dessus pour créer un fichier file.txtqui aura le contenu suivant. Tout d'abord, nous obtenons la position initiale du fichier en utilisantfgetpos()fonction et ensuite nous écrivons Hello, World! dans le fichier, mais plus tard, nous avons utiliséfsetpos() fonction pour réinitialiser le pointeur d'écriture au début du fichier, puis écraser le fichier avec le contenu suivant -

This is going to override previous content

Voyons maintenant le contenu du fichier ci-dessus en utilisant le programme suivant -

#include <stdio.h>

int main () {
   FILE *fp;
   int c;
   int n = 0;

   fp = fopen("file.txt","r");
   
   while(1) {
      c = fgetc(fp);
      if( feof(fp) ) {
         break ;
      }
      printf("%c", c);
   }

   fclose(fp);

   return(0);
}

Compilons et exécutons le programme ci-dessus pour produire le résultat suivant -

This is going to override previous content