English 中文(简体)
在Linux内核中从路径获取inode
原标题:
  • 时间:2009-03-02 00:06:18
  •  标签:

我目前正尝试在内核函数中获取给定路径名的inode。我所拥有的只有完整的路径名。我尝试过像这样的尝试:

user_path_at(AT_FDCWD, buffer, LOOKUP_FOLLOW, &path);

但是似乎给定路径中的dentry无效。然后我想也许可以尝试使用stat()并从中获取inode号码。但是,这只会给我一个号码,而不是一个struct inode。我不知道将inode号码转换为inode的方法,而不是抓取现有的inode并遍历整个inode列表。我甚至不知道这是否会起作用。但我当然不想这样做。

在内核中是否有从char *路径名获取struct inode的简单方式?

最佳回答

没有简单的方法,因为struct inode是内核的一部分,而你是在用户空间中。这完全取决于特定的文件系统实现。你确定stat struct中的信息对你的需求不足够吗?

无论如何,这个链接可能会有所帮助。

问题回答

stat()将在"st_ino"字段中给出文件的inode。

对不起,一开始理解问题有误。

如果你想要内核中实际的索引节点(inode)结构,我非常确定内核本身不会遍历数组或列表查找索引节点号码(除非列表很小)。由于内核的代码是公开可用的,你应该能够找到它是如何做到的,然后也可以这样做。





相关问题
热门标签