首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在mac平台上监控操作

如何在mac平台上监控操作
EN

Stack Overflow用户
提问于 2013-09-04 19:39:59
回答 1查看 633关注 0票数 0

我正在尝试得到文件打开/写入/创建操作,我已经尝试过fslogger,它只能得到文件创建/删除...和其他操作,不能得到打开/关闭操作,然后我写了一个驱动程序来做,我可以得到打开/关闭操作,但不能得到创建操作,更重要的是,它太混乱了!例如,如果我打开一个文件并对其进行修改,然后将其关闭,驱动程序会收到许多打开/写入操作。我无法分辨哪一个操作是由用户的打开/关闭操作引起的。对此有什么提示吗?谢谢。

EN

回答 1

Stack Overflow用户

发布于 2013-09-04 20:07:10

你最好的选择就是KAuth系统。您可以安装kauth处理程序(作为内核扩展),并在有人试图创建、打开或关闭文件时获得各种回调代码。这涉及到在打开文件的关键路径中进行回调,所以无论您做什么都必须要快!

引述如下:

KAUTH_SCOPE_FILEOP定义了以下操作。

  • KAUTH_FILEOP_OPEN
  • KAUTH_FILEOP_CLOSE
  • KAUTH_FILEOP_CLOSE_MODIFIED
  • KAUTH_FILEOP_RENAME
  • KAUTH_FILEOP_EXCHANGE
  • KAUTH_FILEOP_LINK
  • KAUTH_FILEOP_EXEC

https://developer.apple.com/library/mac/technotes/tn2127/_index.html

如果你正在写一个kext,那么你就会有一个问题,那就是如何将这些信息返回到用户领域。FWIW我使用了Kqueue,但你可能用另一种方法成功了(如果你成功了,请在评论中告诉我!)

有关Kauth hereKQueue here的更多信息。它没有很好的文档记录,但在这两者之间有足够的信息来确定您需要做什么。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18612841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档