強制性鎖建議性鎖

2021-06-22 05:35:33 字數 550 閱讀 5955

當多個使用者共同使用,操作乙個檔案的情況,linux通常採用的方法就是給檔案上鎖,來避免共享資源產生競爭的狀態。

fcntl檔案鎖有兩種型別:建議性鎖和強制性鎖

使用fcntl檔案鎖進行i/o操作必須小心:程序在開始任何i/o操作前如何去處理鎖,在對檔案解鎖前如何完成所有的操作,是必須考慮的。如果在設定鎖之前開啟檔案,或者讀取該鎖之後關閉檔案,另乙個程序就可能在上鎖/解鎖操作和開啟/關閉操作之間的幾分之一秒內訪問該檔案。當乙個程序對檔案加鎖後,無論它是否釋放所加的鎖,只要檔案關閉,核心都會自動釋放加在檔案上的建議性鎖(這也是建議性鎖和強制性鎖的最大區別), 所以不要想設定建議性鎖來達到永久不讓別的程序訪問檔案的目的(強制性鎖才可以)^_^;強制性鎖則對所有程序起作用。

在linux中實現上鎖的函式有lock()和fcntl()。

要想讓linux支援強制性鎖,不但在mount的時候需要加上-o mand(apue中文版有誤,它寫成了_omand), 而且對要加鎖的檔案也需要設定相關許可權 (turn on set-group-id and turn off group-execute)參見[4].

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

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

CSS強制性換行

size medium 一般情況下,元素擁有預設的white space normal 自動換行,ps 不換行是white space nowrap 當錄入的文字超過定義的寬度後會自動換行,但當錄入的資料是一堆沒有空格的字元或字母或數字 常規資料應該不會有吧,但有些測試人員是會這樣子做的 超過容器寬...

CSS強制性換行

一般情況下,元素擁有預設的white space normal 自動換行,ps 不換行是white space nowrap 當錄入的文字超過定義的寬度後會自動換行,但當錄入的資料是一堆沒有空格的字元或字母或數字 常規資料應該不會有吧,但有些測試人員是會這樣子做的 超過容器寬度時就會把容器撐大,不換...