有了内核扩展, 内核授权 提供了 文件操作范围 ,让你监控 KAUTH_FILEOP_OPEN 所有vnode的操作。
KAUTH_FILEOP_OPEN
该 KAUTH_FILEOP_OPEN 在访问所有文件之前将调用action,从而允许您监视文件访问。
如果你想要更细粒度的动作,那么 VNode范围 提供更多的动作,包括 KAUTH_VNODE_READ_DATA ,但请注意,此范围可能非常嘈杂,在任何时候都会触发大量的操作。
KAUTH_VNODE_READ_DATA
可以在Singh中找到这种内核扩展的示例代码 Mac OS X Internals
FSEvents的性能没有任何问题;如果您使用Spotlight和/或Time Machine,它已经在您的系统上运行。如果有一种更有效的方法从头开始重新实现它,我会感到非常惊讶。因此,如果它以其他方式满足您的要求,我会坚持下去。