Funzione libreria C - fgetpos ()

Descrizione

La funzione di libreria C. int fgetpos(FILE *stream, fpos_t *pos) ottiene la posizione del file corrente del file stream e lo scrive a pos.

Dichiarazione

Di seguito è riportata la dichiarazione per la funzione fgetpos ().

int fgetpos(FILE *stream, fpos_t *pos)

Parametri

  • stream - Questo è il puntatore a un oggetto FILE che identifica il flusso.

  • pos - Questo è il puntatore a un oggetto fpos_t.

Valore di ritorno

Questa funzione restituisce zero in caso di successo, altrimenti un valore diverso da zero in caso di errore.

Esempio

L'esempio seguente mostra l'utilizzo della funzione 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);
}

Compiliamo ed eseguiamo il programma sopra per creare un file file.txtche avrà il seguente contenuto. Prima di tutto otteniamo la posizione iniziale del file utilizzandofgetpos()e poi scriviamo Hello, World! nel file, ma in seguito abbiamo usatofsetpos() funzione per ripristinare il puntatore di scrittura all'inizio del file e quindi sovrascrivere il file con il seguente contenuto:

This is going to override previous content

Ora vediamo il contenuto del file sopra usando il seguente programma:

#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);
}

Compiliamo ed eseguiamo il programma sopra per produrre il seguente risultato:

This is going to override previous content