Inode号的数据结构是什么样的?

时间:2009-05-05 06:46:36

标签: data-structures filesystems inode

我对inode号的定义感到惊讶:

  

inode是传统Unix风格文件系统上的数据结构   例如UFS或ext3。 inode存储有关常规的基本信息   文件,目录或其他文件系统对象。 Source

因此每个inode编号必须有一个逻辑顺序。你能直接从前面的数字中得出结论吗?

4214970 0 drwx------  102 user  staff   3.4K Feb  2 22:34 new
5728909 0 drwx------    3 user  staff   102B Mar 25 22:11 new_new
5415906 0 drwx------   15 user  staff   510B Mar 19 02:28 stdout_TEST

如果没有,由于数据结构,你可以知道什么样的事情?

2 个答案:

答案 0 :(得分:6)

inode编号不是inode。 :)您可以将inode编号视为inode的主键。

至于如何确定inode号,它取决于文件系统。有些文件系统甚至可能凭空创建inode数据(特别是一些FUSE文件系统)。其他时候它可能直接映射到磁盘上的位置。不幸的是,这是一个有点过时的概念,许多现代文件系统很难将其内部位置信息压缩成32位数字。

在任何情况下,作为应用程序员,应该将inode编号视为不透明值,仅适用于相等比较(并且只有在您确定文件未被删除时才会被删除,因为可以重用inode编号。 ..)

答案 1 :(得分:3)

  

你能直接从前面的数字中得出结论吗?

不一定。 Inode被回收利用。

  

如果没有,由于数据结构,你可以知道什么样的事情?

检查包含适用于特定文件系统的struct定义的头文件(例如,对于ext2和ext3,/usr/include/linux/ext2_fs.h)。