【问题标题】:Getting the inode number of an unopen file from path从路径中获取未打开文件的 inode 号
【发布时间】:2011-07-13 22:15:45
【问题描述】:

有没有办法获取尚未打开的文件的 inode 编号。我想从一个 c 函数内部做到这一点

问候, 利皮卡

【问题讨论】:

    标签: c inode


    【解决方案1】:

    使用stat(2)(采用文件路径),并检查 st_ino 字段。请注意,在您致电stat 到您设法对信息进行任何操作时,有人可能会移动或删除文件。

    【讨论】:

    • 我需要“打开”文件,但我不想这样做。我需要对 inode 编号进行一些处理,如果我得到肯定的结果,我会继续打开文件。
    • 您是否将stat(2)fstat(2) 混淆了?
    • @Lipika 为什么你说你需要打开文件?这不是真的。
    • @Jim 误会了我的一切。效果很好。我一直在想我们必须先打开文件。谢谢
    【解决方案2】:

    基本上可以在这个问题中找到答案:

    How do I read a directory as a file in Unix?

    您必须阅读包含文件条目的目录。该条目包含 inode 编号。

    【讨论】:

      【解决方案3】:

      除非您非常严格地控制文件路径中每个元素的权限,否则您尝试做的几乎肯定是错误的。在涉及通过路径名访问文件的任何两个操作之间,存在竞争条件,即即使在将其返回给您的调用(statreaddir)之前,您获得的 inode 编号也可能不正确。为什么不想打开文件?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-10-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-28
        • 1970-01-01
        • 1970-01-01
        • 2012-01-23
        相关资源
        最近更新 更多