【发布时间】:2014-03-27 22:46:59
【问题描述】:
我正在尝试为守护进程实现基于文件的独占锁,它适用于每个文件(没有线程间或进程内锁定)。我知道这是一个常见问题,并且已经建立了一些约定,但我无法正确解决问题,或者无法完全理解问题。
我查看了其他答案,目前我正在使用与此非常接近的东西:https://stackoverflow.com/a/1643134,即。使用flock 在程序启动时创建一个咨询锁。但是,这不符合我的要求;对flock 的调用总是成功。
我不确定my code 是否不正确,或者我是否误解了,flock 并不意味着可以跨单独的进程工作 (?)。
这是 C++ (11) 代码,在 Linux 2.6.32 (CentOS VM) 和 3.12.9 (Arch) 上测试过,都是 ext4 文件系统。
【问题讨论】:
-
可能某些文件系统不支持咨询锁定,因此总是返回成功。
-
我添加了FS和内核。
-
看来 ext4 在这方面不应该是不可靠的,因为它的广泛使用?
标签: linux posix file-locking