我正在尝试为守护程序实现基于文件的独占锁,该守护程序基于每个文件应用(没有线程间或进程内锁定)。我知道这是一个常见的问题,并且已经建立了一些惯例,但我无法正确完成,或者完全理解问题。
我看过其他答案,目前我正在使用非常接近这个的东西:https://stackoverflow.com/a/1643134,即。使用flock
在程序启动时创建一个咨询锁。但是,这不符合我的要求;对flock
的调用总是成功。
我不确定my code是否不正确,或者我是否误解了,flock
并不意味着跨越不同的流程(?)。
这是C ++(11)代码,在Linux 2.6.32(CentOS VM)和3.12.9(Arch)上测试,都是ext4文件系统。
答案 0 :(得分:1)
我正在关闭acquire
例程末尾的文件描述符。糟糕。