我过去使用过 flock() 和 fcntl(),但我一直担心某些旧版本的 Linux 的行为未定义或存在问题。
我需要一个与旧版 Linux-es(例如 2.6.18 或更高版本)和 NFS 3+ 兼容的解决方案。
在这种情况下,flock() 和/或 fcntl() 是否会始终如一地工作,或者我是否需要求助于 open (.... O_EXCL) 来保证原子性?
最佳答案
您绝对不能期望 flock()
与 NFS 一起工作。 fcntl()
与 F_SETLK
有很好的工作机会,如果您在一个进程中有多个用途,请注意:http://0pointer.de/blog/projects/locking.html
关于linux - 在 Linux 上锁定 NFS 文件时如何避免有问题/未定义的行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25634848/