如果我知道它的inode号码怎么能获得目录名?需要代码。感谢。
下面的代码通过..
传递了dir_name,然后我得到了它的i-node编号,但我还想要的是目录名。
/*child stat*/
stat(dir_name, &sb);
if (stat(dir_name, &sb) == -1) {
perror("stat");
exit(EXIT_FAILURE);
}
childIno = (long) sb.st_ino;
答案 0 :(得分:1)
除非你有一个索引映射名称的inode,你将不得不递归地遍历目录结构,直到找到你正在寻找的inode的名称(你可能找不到)。
如果你的程序的一部分已经知道目录的名称,你应该找到一种方法将它传递给你的代码。
答案 1 :(得分:0)
不确定您是否可以轻松地从inode编号中获取它。很多东西可能指向相同的inode(硬链接,软链接等)。如果您只是寻找 路径,您可以打印出来并感觉良好,您可以使用realpath。下面的例子很容易在Ubuntu 12.04上编译,也应该在BSD系统上运行。 realpath
会占用所有../
和./
内容,从而形成一个体面的路径(虽然不一定是一条独特的路径。
#include <stdlib.h>
#include <stdio.h>
int main( int argc, char *argv[] ){
char *test_path = realpath( "..", NULL );
if ( test_path ) {
printf( "Path resolves to %s\n", test_path );
} else {
printf( "Couldn't resolve path\n" );
}
exit(0);
}