Chinaunix

标题: 我用flock锁定了一个文件,为什么在shell里面仍然可以删除这个文件? [打印本页]

作者: udodoo    时间: 2015-02-12 20:04
提示: 作者被禁止或删除 内容自动屏蔽
作者: 爻易    时间: 2015-02-12 21:21
文件锁是作同步用的,没有写保护功能。

文件关闭之前是不会真正删除的。
作者: 羽剑天涯    时间: 2015-02-13 14:22
(1)楼主可以了解一下协同锁(也有叫建议锁)与强制锁,flock是协同锁,也就是,使用该锁的程序间自己约定好,使用前加锁,试用后解锁,对文件的实际操作如read write unlink等系统调用不会再受该锁影响,也就是即使别处已加锁,直接调用这些接口也是可以正常的操作,不会受别处加锁影响;
(2)这一点可以man close看一下,文件被删除后,该文件从文件系统中不可见,但该文件已经打开的fd仍可正常使用,多个已打开的同一文件的fd还是指向同一文件,知道最后一个指向该文件的fd被close后,该文件才真正消失。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2