有没有办法(在 Linux 中)在不轮询的情况下获取文件锁定状态的更新?
我知道可以通过 lockf(fd, F_TEST) 或推测性 LOCK_NB|LOCK_SH 轮询状态,但轮询是错误的(tm)。
当然,可以通过简单的锁定尝试来确定文件何时未锁定,但我也想对另一边进行采样(用例:(大型)程序使用 lockf 在实例之间同步 - 我可能会得到它变成了flock,我想添加一个GUI,当锁可以获取时显示,当然不是占用锁)。
请注意, inotify 在这种情况下不起作用,至少在 linux 3.9.1 上是这样。