Frage

Wenn eine Datei geöffnet wird mit dem folgenden Befehl:

FILE *f1=fopen("test.dat","a+");

Der Mann Seite lautet:

  

a +

     

Öffnen zum Lesen und Anhänge (am Ende der Datei zu schreiben). Das                     Datei wird erstellt, wenn sie noch nicht existiert. Die anfängliche Dateiposition                     zum Lesen ist am Anfang der Datei, aber Ausgang ist                     immer bis zum Ende der Datei angehängt.

Das Gleiche gilt für f1 mit 2 getrenntem Offset-Zeiger, ein für Lese- und andere zum Schreiben?

War es hilfreich?

Lösung

Nein.

Es gibt nur einen Zeiger, der zunächst am Anfang der Datei ist aber , wenn ein Schreibvorgang versucht wird, es bis zum Ende der Datei verschoben wird . Sie können neu positionieren es fseek oder rewind überall in der Datei zum Lesen verwenden, aber Schreiboperationen werden es wieder bis zum Ende der Datei bewegen.

Andere Tipps

Nein, es hat nur einen Zeiger.

Sie können nie mischen Lesen und Operationen auf einem FILE Schreiben ohne fseek dazwischen zu rufen. Es kann funktionieren, wie Sie auf einigen Implementierungen wünschen, aber ein Programm, das nicht definiertes Verhalten davon abhängt hat. So sind die Fragen 2 Positionen zu haben, ist sinnlos.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top