Saat menggunakan O_WRONLY flag dengan sendirinya, itu membuka file untuk menulis, mempertahankan konten file yang ada, dan menempatkan penunjuk file di awal file. Setiap penulisan akan menimpa konten yang ada.
Jika Anda menggunakan lseek untuk memposisikan ulang penunjuk file, penulisan selanjutnya akan terjadi pada offset yang diposisikan ulang.
Perilaku ini kontras dengan O_TRUNC yang memotong isi file saat dibuka, dan dengan O_APPEND yang memaksa semua penulisan terjadi di akhir file.
Tidak juga.
-
Secara default file dibuka dengan kursor diposisikan di awal. Penulisan akan menimpa byte di awal file.
-
O_TRUNCmenyebabkan file terpotong jika ada. -
O_APPENDmenyebabkan penulisan ditambahkan ke akhir file alih-alih ditimpa di awal. Bendera ini gigih. Jika Anda memindahkan kursor ke tempat lain untuk membaca data, kursor akan selalu diposisikan ulang ke akhir file sebelum setiap penulisan.
Benderanya ortogonal dan tidak saling eksklusif. Anda bahkan dapat menggabungkannya jika awalnya ingin memotong file dan memastikan semua penulisan berikutnya selalu ditambahkan.