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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top