我目前正在尝试获取内核函数中给定路径名的 inode 。我所拥有的只是完整的路径名。我试过这样的尝试:
user_path_at(AT_FDCWD, buffer, LOOKUP_FOLLOW, &path);
但事实证明,给定路径中的 dentry 无效。然后我想也许可以尝试 stat() 并从中获取 inode 编号。但是,这只给了我一个数字,而不是结构 inode。我不知道有什么方法可以在不获取现有 inode 并遍历整个 inode 列表的情况下将 inode 编号转换为 inode。我什至不知道这是否行得通。但我当然不想那样做。
有什么简单的方法可以从内核中的 char *pathname 获取结构 inode 吗?
最佳答案
stat()
将在“st_ino
”字段中为您提供文件的 inode。
抱歉,最初对问题的误解。
如果您想要内核中的实际 inode 结构,我很确定内核本身不会遍历数组或列表来查找 inode 编号(除非列表非常小)。由于内核代码是公开可用的,您应该能够了解它是如何工作的,然后照做。
关于linux - 从 Linux 内核中的路径获取 inode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/600877/