Macos 正在查找VNode的文件系统路径

Macos 正在查找VNode的文件系统路径,macos,mono,pinvoke,Macos,Mono,Pinvoke,我需要在基于Mono的项目中使用函数(在vnode.h中定义为内核框架的一部分),所以我将使用PInvoke来导入它。但我无法确定应该在DllImport属性中引用哪个库。我试过“LibC”和“/System/Library/Frameworks/Kernel.framework/Kernel”,但到目前为止运气不好 有人知道函数位于哪个库中吗? 我的最终目标: 我正在收集系统中运行的所有进程的详细信息。我用它来枚举进程。通过sysctl调用,我可以获得进程ID和进程可执行文件的VNode。现在

我需要在基于Mono的项目中使用函数(在vnode.h中定义为内核框架的一部分),所以我将使用PInvoke来导入它。但我无法确定应该在DllImport属性中引用哪个库。我试过“LibC”和“/System/Library/Frameworks/Kernel.framework/Kernel”,但到目前为止运气不好

有人知道函数位于哪个库中吗?

我的最终目标:
我正在收集系统中运行的所有进程的详细信息。我用它来枚举进程。通过sysctl调用,我可以获得进程ID和进程可执行文件的VNode。现在我需要获取进程可执行文件的文件系统路径。
我正在查看vn_getpath和(使用F_getpath命令)。
在vn_getpath上,我无法使用DllImport属性确定可以从哪个库导入它。
至于fcntl,我在LibC中找到了它,但是该函数需要文件描述符(而不是vnode)

一般来说,我需要了解如何从vnode获取文件系统路径,以及任何数量的中间步骤。

TIA

Ivan

函数未在库中定义,它是内核的一部分,只能在内核和内核扩展中使用:

$ otool -tv /mach_kernel  | grep vn_getpath
_vn_getpath:
_vn_getpath_fsenter:

我已经找到了解决方案,但它基于PID而不是VNode。有一个proc_pidpath函数()可以实现这个技巧,它适用于所有进程,无论是系统进程还是用户进程。应该注意的是,Process Manager API()仅适用于用户进程。