如何在ext2中打印间接块

时间:2013-03-20 04:49:00

标签: c inode ext2

我正在尝试打印ext2文件系统中的所有单个间接块。我可以很容易地打印直接块(0-11),但我不明白如何获得单个间接块,以及后来的双重和三重间接块。如果我查看ino-> i_block [12]的值,我如何使用它来到达指向的位置?我确定我在这里很容易丢失一些东西

1 个答案:

答案 0 :(得分:1)

EXT2中的inode长度为128个字节,包含许多不同的字段。

i_size字段表示文件中存储的字节数,即文件的长度。 i_block数组是一个包含15个块号的数组。

数组中的前12个条目(i_block [0]到i_block [11])包含直接块的块编号:它们命名包含文件内容的前12个块的数据块。

数组中的第13个条目(i_block [12])包含单个间接块的块编号:它命名一个包含4字节块编号数组的块;这些块中的每一个都包含其他文件内容。

数组中的第14个条目(i_block [13])包含双重间接块的块编号:它命名一个包含4字节块编号数组的块,每个块在单个间接块中,它包含一个4字节块数的直接块数组。 数组中的第15个条目(i_block [14])包含三个间接块的块编号。