我已经实现了一个文件锁定机制,沿着linux手册页中"open"的建议,其中指出:
想要使用lockfile执行原子文件锁定的可移植程序,并且需要避免依赖对O_EXCL的NFS支持,可以在同一文件系统上创建一个唯一的文件(例如,合并主机名和PID),并使用link(2)来建立一个锁定文件的链接.如果link(2)返回0,则锁定成功.否则,在唯一文件上使用stat(2)来检查其链接计数是否已增加到2,在这种情况下锁定也是成功的.
这似乎完美无缺,但是为了在我的测试中获得100%的代码覆盖率,我需要覆盖链接数增加到2的情况.
我已经尝试使用谷歌搜索,但我似乎能够找到的所有内容都是上面反复引用的"它完成的方式".
任何人都可以向我解释一下哪些情况会导致链接失败(返回-1),但链接数增加到2?