1. 程式人生 > >linxu c語言 fcntl函式和flock函式區別說明

linxu c語言 fcntl函式和flock函式區別說明

flock和fcntl都有鎖的功能,但他們還有一點小小的區別:

1.flock只能加全域性鎖,fcntl可以加全域性鎖也可以加區域性鎖。

2.當一個程序用flock給一個檔案加鎖時,用另一個程序再給這個檔案加鎖,它會阻塞或者也可以返回加鎖失敗(可以自己設定)。

3.當一個程序用fcntl給一個檔案加鎖時,用另一個程序去讀或寫檔案時必須先獲取加鎖的資訊,然後在給這個檔案加鎖。

3.當給一個檔案加fcntl的獨佔鎖後,再給這個檔案加flock的獨佔鎖,其會進入阻塞狀態。

4.當給一個檔案加flock的獨佔鎖後,用fcntl去獲取這個鎖資訊獲取不到,再用fcntl仍然可以給檔案加鎖。