Das Öffnen einer Datei in 'A +' Modus
-
01-10-2019 - |
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?
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.