Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在为 Mac os 编写内核扩展,我需要删除由 vnode_open() 创建的 tmp 文件,但我不知道如何删除文件并列出目录中的所有文件。
http://developer.apple.com/library/mac/#documentation/Darwin/Reference/KernelIOKitFramework/vnode_h/index.html
谢谢!
最好创建用户空间守护进程并使用 mach RPC 与其通信。在 kext 中删除文件的方法(我知道)取决于内核的版本,因为它需要在 vnode 结构中查找 v_op(vnode 操作向量。从内核扩展中不可见)的偏移量。vnode 结构可能会因内核而异。即使发现 vnop_remove_desc 和 vnop_rmdir_desc 我认为使用它可能是危险的,因为使用这些回调的逻辑可能发生变化。