GNU/Linux >> Belajar Linux >  >> Linux

Perilaku tulis default - O_TRUNC atau O_APPEND?

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_TRUNC menyebabkan file terpotong jika ada.

  • O_APPEND menyebabkan 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.


Linux
  1. Izin File di Linux – Baca/Tulis/Jalankan

  2. Bagaimana cara menulis file dengan C di Linux?

  3. Tulis ke file .txt?

  1. Shell - Tulis konten variabel ke file

  2. file_put_contents tidak membuat file txt

  3. buka file dengan program default di node-webkit

  1. Melakukan Operasi Tulis Atom Dalam File Di Bash?

  2. Bagaimana Cara Menulis File Ke Yang Lain?

  3. Mengatur Izin File pada Unggahan VSFTP