Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 独占文件锁(PID文件实现)_Linux_Posix_File Locking - Fatal编程技术网

Linux 独占文件锁(PID文件实现)

Linux 独占文件锁(PID文件实现),linux,posix,file-locking,Linux,Posix,File Locking,我正在尝试为守护进程实现一个基于文件的独占锁,它基于每个文件(没有线程间或进程内锁定)。我知道这是一个常见的问题,并且已经建立了一些惯例,但是我很难正确地理解它,或者完全理解这个问题 我已经研究了其他答案,目前我正在使用与此非常接近的方法:,即使用flock在程序启动时创建一个建议锁。然而,这并不是我想要的;对flock的调用始终成功 我不确定这是否是错误的,或者我是否误解了,flock并不意味着要跨单独的流程工作(?) 这是C++(11)代码,在Linux 2.632(CENTOS VM)和3

我正在尝试为守护进程实现一个基于文件的独占锁,它基于每个文件(没有线程间或进程内锁定)。我知道这是一个常见的问题,并且已经建立了一些惯例,但是我很难正确地理解它,或者完全理解这个问题

我已经研究了其他答案,目前我正在使用与此非常接近的方法:,即使用
flock
在程序启动时创建一个建议锁。然而,这并不是我想要的;对
flock
的调用始终成功

我不确定这是否是错误的,或者我是否误解了,
flock
并不意味着要跨单独的流程工作(?)


这是C++(11)代码,在Linux 2.632(CENTOS VM)和3.129(ARCH)上测试,两个EXT4文件系统。

< P>我在文件的结尾关闭文件描述符>获取< /C>程序。哎哟。

可能有些文件系统不支持建议锁定,因此总是会返回成功。我添加了FS和内核。不过,似乎ext4在这方面不应该不可靠,因为它的广泛使用?