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