我想等待文件更改或套接字输入。这些thinsg都很少发生,我宁愿把它们都扔进同一个线程,而不是为它们搞乱单独的线程,只是为了避免一点“混乱”。由于Inotify_init似乎提供了一个文件描述符,我原以为我可以将它传递给select,就像我传入套接字并选择会有效地监视两者一样。然而,我试图谷歌它,发现没有任何例子发生在那里,似乎有可能做到这将有一个例子发生在互联网上的某个地方。
任何人都可以验证我是否可以将INotify中的描述符传递给像socket一样的select方法?或者,是否有任何其他阻止方法可以监听文件和套接字更新?
由于
答案 0 :(得分:2)
这通常是Unix设备的工作方式。获得文件描述符后,可以将其传递给select
/ poll
/ epoll
(您应该更喜欢Linux系统上的epoll
)。但是,documentation for inotify
明确指出它是可选的。因此,如果您发现它不起作用,您可以提交错误。
您可以使用inotify_init1
并传递IN_NONBLOCK
作为标志,以非阻塞模式打开描述符。