C语言 如何在ext2中打印间接块

cu6pst1q  于 2023-03-12  发布在  其他
关注(0)|答案(1)|浏览(104)

我试图打印ext 2文件系统中的所有单间接块。我可以很容易地打印直接块(0-11),但我不知道如何获得单间接块,以及后来的双间接块和三间接块。如果我查看ino-〉i_block[12]的值,我如何使用它来获得它所指向的位置?我确信我在这里错过了一些简单的东西

tv6aics1

tv6aics11#

EXT 2中的inode长度为128字节,包含许多不同的字段。
i_size字段指示存储在文件中的字节数,即文件的长度。i_block数组是15个块号的数组。
数组(i_block[0]至i_block[11])中的前12个条目包含直接块的块编号:它们命名包含文件内容的前12个块的数据块。
数组(i_block[12])中的第13个条目包含单个间接块的块编号:它命名包含4字节块编号数组的块;这些块中的每一个都包含附加的文件内容。
数组(i_block[13])中的第14个条目包含双重间接块的块编号:它命名一个包含4字节块号数组的块,每个块都在一个单独的间接块中,间接块包含一个直接块的4字节块号数组。数组中的第15项(i_block[14])包含一个三重间接块的块号。

相关问题