發(fā)布時(shí)間:2022年04月15日 03:49:29分享人:我女神我驕傲來源:互聯(lián)網(wǎng)7
flock() 的函數(shù)原型如下所示:
int flock(int fd, int operation);
其中,參數(shù) fd 表示文件描述符;參數(shù) operation 指定要進(jìn)行的鎖操作,該參數(shù)的取值有如下幾種:
LOCK_SH:表示要?jiǎng)?chuàng)建一個(gè)共享鎖,在任意時(shí)間內(nèi),一個(gè)文件的共享鎖可以被多個(gè)進(jìn)程擁有;
LOCK_EX:表示創(chuàng)建一個(gè)排他鎖,在任意時(shí)間內(nèi),一個(gè)文件的排他鎖只能被一個(gè)進(jìn)程擁有;
LOCK_UN:表示刪除該進(jìn)程創(chuàng)建的鎖;

LOCK_MAND:它主要是用于共享模式強(qiáng)制鎖,它可以與 LOCK_READ 或者 LOCK_WRITE聯(lián)合起來使用,從而表示是否允許并發(fā)的讀操作或者并發(fā)的寫操作;
通常情況下,如果加鎖請(qǐng)求不能被立即滿足,那么系統(tǒng)調(diào)用 flock()會(huì)阻塞當(dāng)前進(jìn)程。比如,進(jìn)程想要請(qǐng)求一個(gè)排他鎖,但此時(shí),已經(jīng)由其他進(jìn)程獲取了這個(gè)鎖,那么該進(jìn)程將會(huì)被阻塞。如果想要在沒有獲得這個(gè)排他鎖的情況下不阻塞該進(jìn)程,可以將LOCK_NB 和 LOCK_SH 或者 LOCK_EX 聯(lián)合使用,那么系統(tǒng)就不會(huì)阻塞該進(jìn)程。flock()所加的鎖會(huì)對(duì)整個(gè)文件起作用。
注意:
1. 對(duì)于文件的 close() 操作會(huì)使文件鎖失效;
2. 同理,進(jìn)程結(jié)束后文件鎖失效;
3. flock() 的 LOCK_EX是“勸告鎖”,系統(tǒng)內(nèi)核不會(huì)強(qiáng)制檢查鎖的狀態(tài),需要在代碼中進(jìn)行文件操 作的地方顯式檢查才能生效。
愛華網(wǎng)本文地址 » http://www.klfzs.com/a/25101014/234974.html
更多閱讀

如何清理C盤的垃圾文件?很多網(wǎng)友都會(huì)有這樣的疑問,那么今天就和大家來分享下如何清理C盤的垃圾文件,請(qǐng)看下文:1、360的小工具里有個(gè)軟件搬家功能 把你的軟件和大的文件都移到其他盤。?2、首先你的C盤空間是多大的,還有你是否經(jīng)常將軟件

csdn的文件怎么下載——簡(jiǎn)介csdn文件的下載,今天找到了半天才弄好,感覺下載的入口太不明顯,太過于隱蔽了,下面給大家說下流程,怎么才能更快捷的下載csdn下的文件。csdn的文件怎么下載——csdn的文件怎么下載方法/步驟csdn的文件怎么下載

【刪除的文件如何恢復(fù)】四種恢復(fù)技巧——簡(jiǎn)介文件被刪除了怎么恢復(fù)?對(duì)于種現(xiàn)象,經(jīng)常辦公的人可能會(huì)留意到,有時(shí)候不小心或者不經(jīng)意之間就刪除了某文件,突然某一時(shí)間發(fā)現(xiàn)它是重要文件時(shí),想要找回時(shí),卻怎么也找不到了。在寫這片經(jīng)驗(yàn)之前,陽(yáng)光

具有某種共同特征的用戶集合起來就是用戶組(Group)。用戶組(Group)配置文件主要就是/etc/group。 /etc/group文件內(nèi)容包括用戶和用戶組,并且能顯示出用戶是歸屬哪個(gè)用戶組或哪幾個(gè)用戶組,因?yàn)橐粋€(gè)用戶可以歸屬一個(gè)或多個(gè)不同的用戶組;同一

Win7下因?yàn)闄?quán)限問題會(huì)導(dǎo)致不能更改hosts文件,這讓人很是苦惱.下面的幾種方法很有效.希望對(duì)大家有用.怎樣修改WIN7下的host文件——方法一第一種方法是網(wǎng)上流傳很廣的覆蓋方法.就是先復(fù)制hosts文件到別的地方,修改完了再覆蓋回來就搞