从路径获取未打开文件的inode编号

时间:2011-03-12 04:32:36

标签: c inode

有没有办法可以获取尚未打开的文件的inode编号。我想从c函数

中做到这一点

此致 利皮卡·马宗

3 个答案:

答案 0 :(得分:3)

使用stat(2)(采用文件路径),然后检查st_ino字段。请注意,有人可以在您拨打stat之间以及您何时设法对信息执行任何操作之间移动或删除文件。

答案 1 :(得分:1)

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

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

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

答案 2 :(得分:1)

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