国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

文件加鎖的例題示范

2019-11-17 05:32:01
字體:
供稿:網(wǎng)友

  以下例子示范了如何為文件建立獨(dú)享鎖:

#include<unistd.h>
#include<stdlib.h>
#include<stdio.h>
#include<fcntl.h>
#include<errno.h>

const char *lock_file="lock.test1";

int main()
{
int file_desc;
int tries=10;

while(tries--){
file_desc=open(lock_file,O_RDWRO_CREATO_EXCL,0444);
if(file_desc==-1){
",getpid());
sleep(1);
} else {
printf("%d - I have exclusive
access
",getpid());
sleep(1);
(void)close(file_desc);
(void)unlink(lock_file);
sleep(1);
}
}
exit(EX99v_SUCCESS);
}

要想看到加鎖的效果,得運(yùn)行:./lock&./lock
我在 linux 下運(yùn)行的結(jié)果:
[1] 18396
18396 - I have exclusive access
18397 - Lock already present
18397 - I have exclusive access
18396 - Lock already present
18396 - I have exclusive access
18397 - Lock already present
18397 - I have exclusive access
18396 - Lock already present
18396 - I have exclusive access
18397 - Lock already present
18397 - I have exclusive access
18396 - Lock already present
18396 - I have exclusive access
18397 - Lock already present
18397 - I have exclusive access
18396 - Lock already present
18396 - I have exclusive access
18397 - Lock already present
18397 - I have exclusive access
18396 - Lock already present
[1]+ Done ./lock

結(jié)果解析:第一個(gè)lock運(yùn)行的進(jìn)程號為18396,加鎖成功后輸出:I have exclusive access,然后休眠1秒,此時(shí)第二個(gè)lock開始運(yùn)行,并試圖給文件加鎖但失敗輸出:Lock already present,并開始休眠1秒,之后第一個(gè)loxk清醒并解鎖,再休眠1秒,第二個(gè)lock運(yùn)行加鎖成功,如次反復(fù)運(yùn)行10次..

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 宣汉县| 新干县| 沁源县| 子洲县| 扬州市| 徐水县| 济阳县| 崇阳县| 涪陵区| 什邡市| 栾城县| 雷州市| 巩义市| 武汉市| 逊克县| 交口县| 日照市| 大名县| 顺昌县| 石棉县| 英吉沙县| 金昌市| 和田市| 昌吉市| 蒲江县| 柳林县| 芦溪县| 恩平市| 永清县| 正蓝旗| 莱阳市| 米易县| 贺兰县| 丽江市| 石城县| 栾城县| 涡阳县| 井陉县| 嘉定区| 云安县| 丁青县|