我想使用inotify监视我的C程序中的一些文件。
我想知道从inotify描述符(由inotify_init
返回的那个)读取一个线程是否安全,从而阻塞直到某个事件发生,在此等待期间有可能在另一个线程期间使用inotify_add_watch
添加新文件到监视队列等待期。
我是否需要同步这些操作或者做这样的事情是否安全?
没有确切的答案,但我从经验中知道,你甚至无法在另一个线程中打开文件而不会触发你正在使用inotify的线程中的read()。我记得读过你需要使用inotify_init1()和IN_CLOEXEC标志来允许其他线程中的文件io。我不确定这是否意味着你可以同时在多个线程中同时使用inotify。