从Linux内核中的路径获取inode

Dan*_*ego 5 linux kernel

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

user_path_at(AT_FDCWD, buffer, LOOKUP_FOLLOW, &path);
Run Code Online (Sandbox Code Playgroud)

但是,在给定的路径中的dentry无效,似乎结果.然后我想也许尝试stat()并从中获取inode数.但是,这只给了我一个数字,而不是结构inode.我不知道如何在不抓取现有inode并遍历整个inode列表的情况下将inode编号转换为inode.我甚至不知道这是否有效.但我当然不想这样做.

有没有简单的方法从内核中的char*pathname获取struct inode?

Mil*_*kov 0

没有简单的方法,因为 struct inode 是内核的一部分,而您位于用户空间。这一切都取决于特定的文件系统实现。您确定 stat 结构中的信息不足以满足您的需求吗?

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