如何检测没有人在Linux中写入文件?

时间:2011-01-04 20:07:44

标签: linux file inotify

我想知道,是否有一种简单的方法可以判断另一个实体是否有某个文件可以写入?我没有时间连续使用iNotify等待任何当前作家完成写作。我需要做间歇性检查。 感谢。

4 个答案:

答案 0 :(得分:3)

在“没有时间连续使用iNotify”的情况下,您究竟在做什么?首先,您应该使用IN_CLOSE_WRITE标志,以便iNotify在写入文件后关闭时只发出一个通知。持续使用它毫无意义。其次,如果您的时机非常重要,我认为写一个文件并不是您理想的解决方案。你控制第一个作家吗?在第一个作家关闭文件后,你是否还要担心写入文件的其他内容?

答案 1 :(得分:1)

lsof LiSts打开文件。通过告诉您哪个用户正在使用该文件,fuser也可以类似地工作(文件用户)。

请参阅:http://www.refining-linux.org/archives/23/16-Introduction-to-lsof-and-fuser/

答案 2 :(得分:0)

由于您似乎想要使用库样式的界面而不是系统,请参阅ofl-lib.c。 (除了ofl程序本身的主要功能之外,它实际上已经删除了所有内容。)

答案 3 :(得分:0)

在一般情况下你不能这么做,即使你可以,你也不能以非活泼的方式使用这些信息(见caf的评论)。

所以我要说,重新设计你的应用程序,这样你就不需要知道了。