观察到在文件修改或文件复制期间,FWRITE 或 KAUTH_FILEOP_CLOSE_MODIFIED 在动作 KAUTH_FILEOP_CLOSE 中的设置不一致。
我的用例是 - 我试图弄清楚正在关闭的文件是修改后的文件还是新创建的文件。我想忽略未修改的文件。
根据文档,当文件操作为 KAUTH_FILEOP_CLOSE 时,我正在检查 KAUTH_FILEOP_CLOSE_MODIFIED 标志。大多数时候,我观察到当文件从一个位置复制到另一个位置或文件被修改时,未设置 KAUTH_FILEOP_CLOSE_MODIFIED。
我还观察到设置了 FWRITE 标志,但对于修改或复制的文件并不一致。我只是想知道为什么行为如此不一致。
我在想的另一种方法是依赖 vnode 操作 KAUTH_VNODE_WRITE_DATA,但我观察到在 KAUTH_FILEOP_CLOSE 之后甚至没有修改文件时也有多次调用 KAUTH_VNODE_WRITE_DATA。
知道为什么存在这种行为吗?
提前致谢。
问候,
鲁佩什