Bei Verwendung des O_WRONLY
Flag selbst, öffnet es die Datei zum Schreiben, behält den vorhandenen Dateiinhalt bei und setzt den Dateizeiger an den Anfang der Datei. Alle Schreibvorgänge überschreiben vorhandene Inhalte.
Wenn Sie lseek
verwenden Um den Dateizeiger neu zu positionieren, erfolgen nachfolgende Schreibvorgänge am neu positionierten Offset.
Dieses Verhalten steht im Gegensatz zu O_TRUNC
die den Inhalt der Datei beim Öffnen abschneidet, und mit O_APPEND
wodurch alle Schreibvorgänge am Ende der Datei erfolgen.
Weder noch.
-
Standardmäßig wird die Datei mit dem Cursor am Anfang geöffnet. Beim Schreiben werden die Bytes am Anfang der Datei überschrieben.
-
O_TRUNC
bewirkt, dass die Datei abgeschnitten wird, falls sie existiert. -
O_APPEND
bewirkt, dass Schreibvorgänge an das Ende der Datei angehängt werden, anstatt sie am Anfang zu überschreiben. Dieses Flag ist dauerhaft. Wenn Sie den Cursor an eine andere Stelle bewegen, um Daten zu lesen, wird er vor jedem Schreibvorgang immer an das Ende der Datei verschoben.
Die Flags sind orthogonal und schließen sich nicht gegenseitig aus. Sie können sie sogar kombinieren, wenn Sie die Datei zunächst abschneiden und sicherstellen möchten, dass alle späteren Schreibvorgänge immer angehängt werden.