在linux 内核模块中(即在内核空间中工作),我有一个文件路径。
可以使用哪些函数来获取该文件的inode。具体来说,我需要让“inode *”指向文件的inode。
答案 0 :(得分:5)
您不必打开文件。内核中有一个查找函数可以将char *name
转换为struct nameidata
。请参阅path_lookup。
您可能还想了解路径分辨率算法的工作原理here。
答案 1 :(得分:1)
您可以使用filp_open
函数,但正如函数注释中所述,在内核模块中打开文件不是您想要做的事情。
这是function,它会返回您路径的struct file
。从那里我想你可以去inode
奖励:可能这不是你打算做的,但是这里有an article来自内核的文件读/写,以及为什么你不想这样做。
答案 2 :(得分:1)
根据我对内核的经验,我建议你总是选择像path_lookup这样的顶级函数而不是中间的函数。