6

C プログラムでいくつかのファイルを監視するために inotify を使用したいと考えていました。

1 つのスレッドが inotify 記述子 (によって返されたもの) から読み取ることが安全かどうか疑問に思っています。したがって、何らかのイベントが発生するまでブロックします。この待機中に、他のスレッドの待機期間中にinotify_init使用してキューを監視する新しいファイルを追加する可能性があります。inotify_add_watch.

これらのアクションを同期する必要がありますか、それとも安全に実行できますか?

4

1 に答える 1

1

正確な答えはありませんが、経験上、inotify を使用しているスレッドで read() をトリガーしない限り、別のスレッドでファイルを開くことさえできないことがわかっています。他のスレッドでファイル io を許可するには、IN_CLOEXEC フラグと一緒に inotify_init1() を使用する必要があることを読んだことを思い出します。ただし、それが実際に inotify を複数のスレッドで同時に使用できることを意味するかどうかはわかりません。

于 2012-09-27T15:33:51.337 に答える