免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4590 | 回复: 9

请教:fcntl文件锁的问题 [复制链接]

论坛徽章:
0
发表于 2008-09-27 16:06 |显示全部楼层
用fcntl给文件加锁, 在一个进程中加给一个文件多次加同一类型的锁,不会报错吗?

论坛徽章:
0
发表于 2008-09-27 16:09 |显示全部楼层
读锁可以,写锁不可以

论坛徽章:
0
发表于 2008-09-27 16:15 |显示全部楼层
恩,谢谢!我还以为fcntl使用方法的不对呢!

论坛徽章:
11
技术图书徽章
日期:2014-03-01 14:44:34天蝎座
日期:2014-05-21 22:11:59金牛座
日期:2014-05-30 17:06:14
发表于 2008-09-27 16:23 |显示全部楼层
文件锁是进程级的,同一个进程对一个文件多次加锁,如果后加的锁与先前的区域有重叠,都是后者(不论读锁还是写锁)生效

[ 本帖最后由 timespace 于 2008-9-27 16:26 编辑 ]

论坛徽章:
0
发表于 2008-09-27 16:29 |显示全部楼层
原帖由 openq 于 2008-9-27 16:06 发表
用fcntl给文件加锁, 在一个进程中加给一个文件多次加同一类型的锁,不会报错吗?



lz 对不起。。。我理解错你的意思了。。。

apue里说
如果一个进程对一个文件区间已经有一把锁,后来该进程又企图在同一文件区间再加一把锁,那么新锁将替换老锁

论坛徽章:
0
发表于 2008-09-28 16:45 |显示全部楼层
恩,谢谢两位!

论坛徽章:
0
发表于 2008-09-28 17:03 |显示全部楼层
为什么在同一个进程中要重复加锁??

论坛徽章:
0
发表于 2010-08-17 09:40 |显示全部楼层
回复 4# timespace


    您好,我是初学者,对于文件加锁有点模糊。不是说对一个文件加了写锁后就不能加其他锁了吗,我写了个测试程序,用fcntl给同一个文件先加了写锁,后加读锁,本来期望结果是提示读锁没有加成功,可是他都加成功了。看您上面的留言,是不是一个进程对一个文件加锁,如果有先后,就会最后一个覆盖掉之前的锁呢?我想测试读锁和写锁的异同,就是希望在加了写锁后再加读锁,提示失败。希望高手指点!

论坛徽章:
0
发表于 2010-08-17 10:49 |显示全部楼层
回复  timespace


    您好,我是初学者,对于文件加锁有点模糊。不是说对一个文件加了写锁后就不能加 ...
arthurzhaizhao 发表于 2010-08-17 09:40



    文件锁是用来在进程间同步的.一个进程加了锁(假设是互斥的),另一个进程再想加就会出错.但这不妨碍加锁那个进程再次加锁,这样不会出错,只会用新锁代替旧锁

论坛徽章:
0
发表于 2010-08-17 12:33 |显示全部楼层
回复 9# liwangli1983


    谢谢您的点拨!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP