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后,该文件才真正消失。
页: [1]
查看完整版本: 我用flock锁定了一个文件,为什么在shell里面仍然可以删除这个文件?