【问题标题】:In a linux kernel module, how can I get inode of a known path在 linux 内核模块中,如何获取已知路径的 inode
【发布时间】:2010-12-17 02:40:06
【问题描述】:

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

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

【问题讨论】:

    标签: linux linux-kernel inode


    【解决方案1】:

    根据我在内核方面的经验,我建议您始终使用像 path_lookup 这样的顶级函数,而不是中间的函数。

    【讨论】:

      【解决方案2】:

      您不必打开文件。内核中提供了一个查找函数,可将char *name 转换为struct nameidata。请参考path_lookup

      您可能还想看看路径解析算法的工作原理,here

      【讨论】:

        【解决方案3】:

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

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

        奖励:可能这不是您打算做的,但这里是an article 从内核读取/写入文件,以及您不想这样做的原因。

        【讨论】:

        • 感谢您的警告,但我不打算阅读该文件。
        猜你喜欢
        • 2010-10-10
        • 2013-04-25
        • 2019-10-15
        • 1970-01-01
        • 2015-05-04
        • 1970-01-01
        • 2011-06-19
        • 2018-06-20
        • 2013-09-04
        相关资源
        最近更新 更多