簡體   English   中英

Linux ANSI C同時訪問文件和鎖定

[英]Linux ANSI C simultaneous access to files and locking

我正在編寫同時訪問文件的Linux ANSI C cgi-bin服務器程序。

  1. 是否可以區分文件存在和文件鎖定? 我找不到Google的答案。 我想編寫一個程序,嘗試在fd <0的情況下打開文件幾秒鍾(認為文件被鎖定了一段時間)。 但是,如果該文件不存在,則fd也<0。 因此該程序將浪費時間等待。

  2. 假設有幾個線程嘗試不加鎖定地追加到同一文件。 一種嘗試添加“ AAAA”,另一種嘗試添加“ BBBB”。 結果文件可以像“ AABBAABB”嗎? 還是總是像AAAABBBB或BBBBAAAA? 還是結果不可預測?

假設IEEE Std 1003.1-2001可能遵循ISO C標准...

如果fopen失敗,即fd <0,則系統設置一些錯誤代碼...您可以檢查這些錯誤代碼。 如果文件不存在,則返回錯誤為

ENOENT文件名的組件未命名現有文件,或者文件名是空字符串。

有關更多參考,請訪問: http : //pubs.opengroup.org/onlinepubs/009695399/functions/fopen.html

對於第2點:我已經通過100多個進程同時寫入單個文件來記錄系統中的某些數據,但從未見過記錄合並(文件始終以附加模式打開)。 即它總是像AAAABBBB

暫無
暫無

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

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