Wenn eine Datei mit dem folgenden Befehl geöffnet wird:
%Vor%Die man-Seite lautet:
a +
Zum Lesen und Anhängen öffnen (am Ende der Datei schreiben). Das Datei wird erstellt, wenn sie nicht existiert. Die ursprüngliche Dateiposition zum Lesen ist am Anfang der Datei, aber die Ausgabe ist immer an das Ende der Datei angehängt.
Also hat f1
zwei separate Offset-Zeiger, einen für Lese- & amp; ein anderer für schreiben?
Nein.
Es gibt nur einen Zeiger, der anfänglich am Anfang der Datei steht, aber wenn eine Schreiboperation versucht wird, wird sie an das Ende der Datei verschoben . Sie können sie mit fseek
oder rewind
an einer beliebigen Stelle in der Datei neu positionieren, um sie zu lesen, aber beim Schreiben wird sie wieder an das Ende der Datei verschoben.
Sie können nie Lese- und Schreibvorgänge für FILE
mischen, ohne dazwischen fseek
aufzurufen. Bei einigen Implementierungen funktioniert es zwar wie gewünscht, aber ein davon abhängiges Programm hat ein undefiniertes Verhalten. Somit ist die Frage nach 2 Positionen bedeutungslos.
Tags und Links c file-io file fopen file-pointer