C 从FreeBSD vnode读取文件名

C 从FreeBSD vnode读取文件名,c,freebsd,C,Freebsd,我正在尝试从FreeBSD vnode结构获取文件名。我阅读了vnode手册,知道这个结构表示系统中的任何文件活动(打开的文件、目录等) 我在代码中得到的是指向vnode结构的指针和对FreeBSD内存映像的访问。但问题是我不能使用任何类型的系统API:既不能使用用户空间也不能使用内核空间。更准确地说,我正在编写Lauterbach HW调试器的某种扩展。这个调试器允许我从内核读取调试符号,从内存读取32位、16位和8位值 据我所知,有一些函数,如vn_fullpath(),允许从vnode结构

我正在尝试从FreeBSD vnode结构获取文件名。我阅读了vnode手册,知道这个结构表示系统中的任何文件活动(打开的文件、目录等)

我在代码中得到的是指向vnode结构的指针和对FreeBSD内存映像的访问。但问题是我不能使用任何类型的系统API:既不能使用用户空间也不能使用内核空间。更准确地说,我正在编写Lauterbach HW调试器的某种扩展。这个调试器允许我从内核读取调试符号,从内存读取32位、16位和8位值

据我所知,有一些函数,如vn_fullpath(),允许从vnode结构中获取文件名。我可以分析它们,并尝试在代码中重新实现它们,但它们使用的是文件系统缓存,我希望避免使用缓存,而是直接从文件系统或与文件系统无关的系统层读取文件名


我分析了vnode结构,不幸的是,我没有找到任何有用的信息来说明如何从vnode获取文件名。有没有建议如何通过内核结构来获得它?

听起来VNode没有文件名或路径。这就是vn_fullpath必须猜测的原因(根据其手册)。您是想猜测,还是想知道实际的路径名?因为您无法获得实际的路径名。我只需要文件名,而不需要整个路径。我不知道FreeBSD,但在Linux上,文件没有名称,所以您仍然需要猜测。你想猜吗?听起来VNode没有文件名或路径。这就是vn_fullpath必须猜测的原因(根据其手册)。您是想猜测,还是想知道实际的路径名?因为您无法获得实际的路径名。我只需要文件名,而不需要整个路径。我不知道FreeBSD,但在Linux上,文件没有名称,所以您仍然需要猜测。你想猜猜看吗?