2

有没有办法获取尚未打开的文件的 inode 编号。我想从 ac 函数内部执行此操作

问候, 利皮卡

4

3 回答 3

3

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

于 2011-03-12T04:46:36.867 回答
1

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

如何在 Unix 中将目录作为文件读取?

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

于 2011-03-12T04:36:53.213 回答
1

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

于 2011-03-12T05:35:14.453 回答