2

我想等待文件更改或套接字输入。这两种事情都很少发生,我宁愿把它们都扔到同一个线程中,而不是为它们弄乱单独的线程,只是为了避免一点“混乱”。由于 Inotify_init 似乎提供了一个文件描述符,我认为我可以将它传递给 select,就像我传递一个套接字一样,并且 select 会有效地监视两者。然而,我试图用谷歌搜索它并没有发现任何发生这种情况的例子,而且似乎如果有可能的话,互联网上的某个地方就会有一个例子。

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

谢谢

4

1 回答 1

2

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

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

于 2012-08-03T15:26:21.210 回答