在多线程程序中将监视添加到Inotify

时间:2012-06-17 09:08:00

标签: linux multithreading inotify

我想使用inotify监视我的C程序中的某些文件。

我想知道从inotify描述符(由inotify_init返回的那个)读取一个线程是否安全,从而阻塞直到某个事件发生,在此等待期间有可能添加新文件以供观察在其他线程等待期间使用inotify_add_watch排队。

我是否需要同步这些操作,或者这样做是否安全?

1 个答案:

答案 0 :(得分:1)

没有确切的答案,但我确实从经验中知道,如果不在您使用inotify的线程中触发read(),您甚至无法在另一个线程中打开文件。我记得读过你需要使用inotify_init1()和IN_CLOEXEC标志来允许其他线程中的文件io。我不确定这是否意味着您实际上可以同时在多个线程中使用inotify。