apue 中建議性記錄鎖和強制性記錄鎖的描述

2021-04-30 08:37:43 字數 482 閱讀 5983

書中描述:

考慮資料庫訪問例程式。如果該庫中所有函式都以一致的方法處理記錄鎖,則稱使用這些函式訪問資料庫的任何程序集為合作程序( cooperating pro c e s s)。如果這些函式是唯一的用來訪問資料庫的函式,那麼它們使用建議性鎖是可行的。但是建議性鎖並不能阻止對資料庫檔案有寫許可權的任何其他程序寫資料庫 檔案。不使用協同一致的方法(資料庫訪問例程庫)來訪問資料庫的程序是乙個非合作程序

看得不是很明白,下面是網上有人的解釋:

我舉個例子,你就明白了:

例如,我有幾個程序(不一定有親緣關係)都通過fctnl機制來操作檔案,這個就叫一致的方法。

但是,如果同時,又有個流氓程序,管它3721,衝上去,open, write。

這時候那幾個程序fcntl對這種方式無能為力,這樣就叫不一致。檔案最後的狀態就不定了。

正因為這種鎖約束不了其它的訪問方式,所以叫建議行鎖。強制性鎖需要核心支援的,對read, write, open都會檢查鎖。

強制性鎖建議性鎖

當多個使用者共同使用,操作乙個檔案的情況,linux通常採用的方法就是給檔案上鎖,來避免共享資源產生競爭的狀態。fcntl檔案鎖有兩種型別 建議性鎖和強制性鎖 使用fcntl檔案鎖進行i o操作必須小心 程序在開始任何i o操作前如何去處理鎖,在對檔案解鎖前如何完成所有的操作,是必須考慮的。如果在設...

APUE 程序控制 中

當乙個程序正常或異常終止時會向父程序傳送sigchld訊號。對於這種訊號系統缺省會忽略。呼叫wait waidpid的程序可能會 include include pid t wait int statloc pid t waitpid pid t pid,int statloc,int option...

APUE 檔案和目錄 中

乙個檔案可以有多個目錄項指向其i節點。使用link函式可以建立乙個指向現存盤案連線 include int link const char existingpath,const char newpath 返回值 成功為0,出錯為 1 該函式建立乙個新目錄項newpath,指向現存盤案existing...