如何使用vnode删除文件?

问题描述:

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

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,我认为使用它可能会导致使用这些回调的逻辑可能发生的变化。