簡體   English   中英

O_CREAT | O_EXCL的對面

[英]Opposite of O_CREAT|O_EXCL

Linux上的C中是否有辦法僅在文件已存在的情況下才寫入文件? 換句話說,與open(..., O_CREAT|O_EXCL)

請注意,我不希望將存在檢查與文件的實際打開分離開(例如預先調用stat() ),因為這將是競爭條件。

為此,我將嘗試使用O_WRONLY打開文件,如果open()不會失敗,則文件存在。 您可以檢查errno來檢查錯誤。

我沒有其他辦法了

嘗試打開不帶O_CREAT標志的文件時檢查ENOENT

未設置ENOENT O_CREAT,並且命名文件不存在; 或O_CREAT設置,並且路徑前綴不存在或path參數指向空字符串。

如果可以使用fopen ,則:

file=fopen(some_sime, "r+");
if (file) fd=fileno(file);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM