linux - 从 Linux 内核中的路径获取 inode

标签 linux kernel

我目前正在尝试获取内核函数中给定路径名的 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/

相关文章:

assembly - 为什么此 mov gs 指令会导致运行 Windows 7 操作系统的 VMWare Workstation 客户机出现故障?

linux - 信号量值大于初始值

security - 以内核模式运行的进程和以 root 身份运行的进程之间的区别?

linux - 在 shell 脚本中复制一个变量 (Linux)

c - 设置语言环境时 Windows C 运行时 toupper 变慢

linux - 如何在 Ubuntu 启动时加载自定义模块?

linux - 如何向task_struct添加成员绕过 "compiletime_assert"

linux - 使用 netif_rx() 时出现内核错误

c++ - 读取 linux inode 位图

c++ - 在 g++ 中与 .so 链接导致 undefined reference