OSX FSEventStream を使用して、特定のディレクトリのファイル システムの変更を監視しています。ここのドキュメントを見ていたら、kFSEventStreamCreateFlagIgnoreSelf という興味深いフラグが記述されているのを見つけました。
このフラグを使用するドキュメントによると、FSEvents フレームワークは「現在のプロセスによってトリガーされたイベント」について通知しません。
これはいいですね。それはまさに私が望んでいることですが、実際には、現在のプロセスによってトリガーされたイベントがまだいくつかあることがわかりました。
私の限られたテストでは、監視プロセスが新しいファイルを作成するか、既存のファイルの名前を変更すると、イベントが引き続きトリガーされます。少なくとも既存のファイルのいくつかの変更はイベントをトリガーしません。
限られたドキュメント (およびフラグの名前) に基づいて、現在のプロセスによってイベントがトリガーされることは期待できません。
だから私の質問は 2 つあります: -- これは予想される動作ですか? このままの振る舞いを当てにしてしまうと、それは意図的ではなく、将来的には自分の下から変化する可能性があるのではないかと心配しています。
2番目: -- もしそうなら、このフラグを使用したときにどのイベントがまだ配信されると期待できるか知っている人はいますか?