如何使用vnode删除文件?

时间:2011-03-01 01:18:32

标签: macos kernel iokit

我正在为Mac OS编写内核扩展,我需要删除由...创建的tmp文件 vnode_open(),但我找不到如何删除文件并列出目录中的所有文件。

http://developer.apple.com/library/mac/#documentation/Darwin/Reference/KernelIOKitFramework/vnode_h/index.html

谢谢!

1 个答案:

答案 0 :(得分:2)

最好创建用户空间守护程序并使用mach RPC与之通信。 在kext中删除文件的方法(我知道)取决于内核的版本,因为它需要在vnode结构中查找v_op(vnode操作向量。在内核扩展中不可见)的偏移量。 vnode结构可能会从内核更改为内核。即使找到vnop_remove_desc和vnop_rmdir_desc,我认为使用它可能会有危险,因为可能会改变使用这些回调的逻辑。