L'apertura di un file in 'A +' modalità
-
01-10-2019 - |
Domanda
Se viene aperto un file utilizzando il seguente comando:
FILE *f1=fopen("test.dat","a+");
La pagina uomo legge:
a +
Apre in lettura e aggiungendo (scrittura alla fine del file). Il file viene creato se non esiste. La posizione di file iniziale per la lettura si trova all'inizio del file, ma la produzione è sempre aggiunto alla fine del file.
Così fa f1
avere 2 puntatori di offset separati, uno per la lettura e un altro per la scrittura?
Soluzione
No.
C'è solo un puntatore che è inizialmente all'inizio del file, ma quando un'operazione di scrittura viene tentata viene spostato alla fine del file . È possibile riposizionare utilizzando fseek
o rewind
in qualsiasi parte del file in lettura, ma le operazioni di scrittura si sposterà di nuovo alla fine del file.
Altri suggerimenti
Non ha un solo puntatore.
Puoi non mix leggere e scrivere le operazioni su un FILE
senza chiamare fseek
in mezzo. Può funzionare come si desidera in alcune implementazioni, ma un programma che dipende da questo ha un comportamento indefinito. Così le domande di avere 2 posizioni è priva di significato.