5

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

4

4 回答 4

3

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

于 2011-01-04T20:51:15.400 回答
1

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

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

于 2011-01-04T20:19:34.963 回答
0

在一般情况下,您不能轻易做到这一点,即使可以,您也不能以不雅的方式使用这些信息(请参阅 caf 的评论)。

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

于 2011-01-05T13:33:46.267 回答
0

由于您似乎想要使用库风格的界面,而不是系统,请参阅ofl-lib.c。(实际上只是从ofl程序本身中删除了除 main 函数之外的所有内容。)

于 2011-01-04T21:58:09.980 回答