1

単一のinotifyファイル記述子を使用して、IN_MOVED_TOおよびを含むいくつかのイベントについて多くのビジーなディレクトリを監視していIN_MOVED_FROMます.

readそれを呼び出して(読み取るデータが存在するまでブロックします)、発生したイベントを処理するループがあります。

監視されている 2 つのディレクトリ間でファイルが移動されると、2 つのがinotify_eventinotify ファイル記述子に書き込まれIN_MOVED_TOます。maskIN_MOVED_FROMcookie

への同じ呼び出しで両方のイベントがバッファリングされることが保証されていreadますか? それとも、1 つのイベントをバッファリングするために 1 回呼び出して、次のイベントをバッファリングするためにもう一度呼び出す必要がありますか?

4

1 に答える 1

2

私の知る限り、そのような保証はありません。
信頼できるのは、名前変更操作の 2 つのイベント ( IN_MOVED_FROMIN_MOVED_TO) が同じ に関連付けられているという事実だけcookieです。

上記以外の仮定は信頼できません。たとえば、次のようになります。

  • 2 つのイベントは連続して発生します (一方が他方の直後に発生します)。
  • 2 つのイベントは、同じreadシステム コールで一緒に表示されます。
于 2013-12-05T15:10:16.783 に答える