Při použití O_WRONLY
příznak sám o sobě otevře soubor pro zápis, zachová stávající obsah souboru a umístí ukazatel na soubor na začátek souboru. Jakékoli zápisy přepíší existující obsah.
Pokud použijete lseek
k přemístění ukazatele souboru dojde k dalším zápisům na přemístěném posunu.
Toto chování kontrastuje s O_TRUNC
která při otevření zkrátí obsah souboru a pomocí O_APPEND
což vynutí všechny zápisy na konci souboru.
Ani ne.
-
Ve výchozím nastavení je soubor otevřen s kurzorem umístěným na začátku. Zápis přepíše bajty na začátku souboru.
-
O_TRUNC
způsobí, že soubor bude zkrácen, pokud existuje. -
O_APPEND
způsobí, že se zápisy připojí na konec souboru namísto přepsání na začátku. Tento příznak je trvalý. Pokud přesunete kurzor jinam za účelem čtení dat, vždy se před každým zápisem přemístí na konec souboru.
Vlajky jsou ortogonální a vzájemně se nevylučují. Můžete je dokonce zkombinovat, pokud chcete soubor zpočátku zkrátit a zajistit, aby všechny pozdější zápisy byly vždy připojeny.