2

ファイルの変更またはソケットの入力を待ちたい。これらのthinsgの両方が発生することはめったにないので、少しの「混乱」を避けるために、別々のスレッドをいじるのではなく、両方を同じスレッドに入れたいと思います。Inotify_initはファイル記述子を提供しているように見えるので、ソケットに渡すのとほぼ同じ方法でselectに渡すことができ、selectは両方を効果的に監視できると思っていました。しかし、私はそれをグーグルで検索しようとしましたが、そのようなことが起こっている例はどこにも見つかりませんでした。それが可能であれば、インターネット上のどこかで起こっている例があるようです。

ソケットのように、INotifyからselectメソッドに記述子を渡すことができるかどうかを誰かが確認できますか?または、ファイルとソケットの両方の更新をリッスンする他のブロック方法がある場合はどうなりますか?

ありがとう

4

1 に答える 1

2

これは通常、Unixデバイスの動作方法です。ファイル記述子を取得したら、それを//に渡すことができますselectpollLinuxシステムでepollは優先する必要があります)。epollただし、のドキュメントにinotifyは、選択可能であると明示的に記載されています。したがって、それが機能しないことがわかった場合は、バグを報告することができます。

フラグとして使用inotify_init1して渡すことIN_NONBLOCKで、非ブロッキングモードで記述子を開くことができます。

于 2012-08-03T15:26:21.210 に答える