Inotify和Select调用是否可以合并



我想等待文件更改或套接字输入。这两种thinsg很少发生,我宁愿把它们都放在同一个线程中,也不愿为它们处理单独的线程,以免出现一点"混乱"。由于Inotify_init似乎提供了一个文件描述符,我曾认为我可以像在套接字中传递一样将其传递到select中,select将有效地监视两者。然而,我试着用谷歌搜索它,但没有发现任何发生这种情况的例子,而且如果有可能的话,互联网上也会有这样的例子。

有人能验证我是否能像传递套接字一样,将描述符从INotify传递到select方法中吗?或者,是否有任何其他阻塞方法可以同时侦听文件和套接字更新?

感谢

这通常是Unix设备的工作方式。一旦有了文件描述符,就可以将其传递给select/poll/epoll(在Linux系统上应该更喜欢epoll)。但是,inotify的文档明确指出它是可选择的。所以,如果你发现它不起作用,你可以提交一个bug。

您可以使用inotify_init1并传递IN_NONBLOCK作为标志,以在非阻塞模式下打开描述符。

最新更新