【问题标题】:Adding watches to Inotify in multi-threaded program在多线程程序中将手表添加到 Inotify
【发布时间】:2012-06-17 09:08:00
【问题描述】:

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

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

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

【问题讨论】:

  • 有关于这个问题的消息吗?

标签: linux multithreading inotify


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2019-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多