在multithreading程序中将手表添加到Inotify中

我想用inotify来监视C程序中的一些文件。

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

我需要同步这些行动还是安全地做这样的事情?

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