我想使用 inotify 来监控我的 C 程序中的一些文件。
我想知道让一个线程从 inotify 描述符(由 inotify_init
返回的)读取是否安全,从而阻塞直到某个事件发生,在此等待期间可能会添加新的在其他线程等待期间使用 inotify_add_watch
将文件发送到 watch 队列。
我是否需要同步这些操作或者这样做是否安全?
最佳答案
没有确切的答案,但我从经验中知道,如果不触发正在使用 inotify 的线程中的 read(),您甚至无法在另一个线程中打开文件。我记得读过你需要使用 inotify_init1() 和 IN_CLOEXEcflags来允许其他线程中的文件 io。不过,我不确定这是否意味着您实际上可以同时在多个线程中使用 inotify。
关于linux - 在多线程程序中为 Inotify 添加 watch ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11070165/