POSIX 定义的 inode 是什么?
这维基百科关于 inode 的文章有一个标题为POSIX inode description
其中表示索引节点包含(以及其他 8 个要点):
- 设备 ID(标识包含该文件的设备)。
这对我来说似乎不对,而且我注意到参考文献中没有指向 POSIX 文档的链接。
POSIX 对 inode 的结构有何规定?请酌情提供参考资料。
答案1
POSIX 标准中没有 inode 的定义。
这POSIX 程序员指南 作者:唐纳德·卢恩说 POSIX 使用术语“文件序列号”来指代通常所说的i节点号,即文件系统中文件条目的唯一编号。
... 和
ino_t
应定义为无符号整数类型。
有趣的是,该标准确实包含“inode”一词,因为@apricot boy 提到,但我也找不到该术语的定义。也许最接近的是:
ino_t st_ino File serial number.
在这条评论中Johan Myréen 表示,维基百科可能将索引节点与结构内容混淆了stat
。
结构stat
确实包含设备信息和维基百科的其他信息错误地说包含在 inode 中。
答案2
POSIX 标准 (IEEE Std 1003.1) 没有明确说明什么是 inode。这只是一个超出标准范围的实现细节。
答案3
有 POSIX inode 这样的东西吗?我在中搜索了“inode”POSIX.1-2008 规范,并且它仅在少数联机帮助页和头文件中作为传递引用出现。那里似乎没有定义索引节点。我猜想 inode 是由内核或您正在使用的任何文件系统的驱动程序处理的。
至于你关于 inode 中设备 ID 的问题,我查看了两者的 inode 结构外部4和BTFS,两者都没有提及设备号,所以我再次猜测这是由内核完成的。