FWRITEまたはKAUTH_FILEOP_CLOSE_MODIFIEDが、ファイルの変更またはファイルのコピー中にアクションKAUTH_FILEOP_CLOSEで一貫して設定されていないことが確認されました。
私のユースケースは-閉じているファイルが変更されたファイルなのか、新しく作成されたファイルなのかを把握しようとしています。変更されていないファイルを無視したい。
ドキュメントによると、ファイルアクションがKAUTH_FILEOP_CLOSEの場合、KAUTH_FILEOP_CLOSE_MODIFIEDフラグをチェックしています。ほとんどの場合、ファイルをある場所から別の場所にコピーしたり、ファイルを変更したりすると、KAUTH_FILEOP_CLOSE_MODIFIEDが設定されないことがわかりました。
また、FWRITEフラグが設定されていることも確認しましたが、変更またはコピーされたファイルに対して一貫性がありません。なぜ動作がそれほど一貫していないのか疑問に思っています。
私が考えていたもう1つの方法は、vnodeアクションKAUTH_VNODE_WRITE_DATAに依存することでしたが、KAUTH_FILEOP_CLOSEの後で、ファイルが変更されていない場合でも、KAUTH_VNODE_WRITE_DATAの複数の呼び出しが発生することがわかりました。
なぜそのような振る舞いが存在するのか、何か考えはありますか?
前もって感謝します。
よろしく、
ルペシュ