在linux内核模块中,如何获取已知路径的inode

时间:2009-11-16 15:41:58

标签: linux linux-kernel inode

在linux 内核模块中(即在内核空间中工作),我有一个文件路径。

可以使用哪些函数来获取该文件的inode。具体来说,我需要让“inode *”指向文件的inode。

3 个答案:

答案 0 :(得分:5)

您不必打开文件。内核中有一个查找函数可以将char *name转换为struct nameidata。请参阅path_lookup

您可能还想了解路径分辨率算法的工作原理here

答案 1 :(得分:1)

您可以使用filp_open函数,但正如函数注释中所述,在内核模块中打开文件不是您想要做的事情。

这是function,它会返回您路径的struct file。从那里我想你可以去inode

奖励:可能这不是你打算做的,但是这里有an article来自内核的文件读/写,以及为什么你不想这样做。

答案 2 :(得分:1)

根据我对内核的经验,我建议你总是选择像path_lookup这样的顶级函数而不是中间的函数。