可以合并Inotify和Select通话吗?

时间:2012-08-03 15:10:51

标签: c++ linux select inotify

我想等待文件更改或套接字输入。这些thinsg都很少发生,我宁愿把它们都扔进同一个线程,而不是为它们搞乱单独的线程,只是为了避免一点“混乱”。由于Inotify_init似乎提供了一个文件描述符,我原以为我可以将它传递给select,就像我传入套接字并选择会有效地监视两者一样。然而,我试图谷歌它,发现没有任何例子发生在那里,似乎有可能做到这将有一个例子发生在互联网上的某个地方。

任何人都可以验证我是否可以将INotify中的描述符传递给像socket一样的select方法?或者,是否有任何其他阻止方法可以监听文件和套接字更新?

由于

1 个答案:

答案 0 :(得分:2)

这通常是Unix设备的工作方式。获得文件描述符后,可以将其传递给select / poll / epoll(您应该更喜欢Linux系统上的epoll)。但是,documentation for inotify明确指出它是可选的。因此,如果您发现它不起作用,您可以提交错误。

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