【问题标题】:how to print indirect block in ext2如何在ext2中打印间接块
【发布时间】:2013-03-09 01:53:13
【问题描述】:

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

【问题讨论】:

    标签: c inode ext2


    【解决方案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]) 包含三重间接块的块号。

    猜你喜欢
    • 2018-02-15
    • 2011-11-27
    • 1970-01-01
    • 1970-01-01
    • 2016-03-19
    • 1970-01-01
    • 2016-07-12
    • 1970-01-01
    • 2011-03-01
    相关资源
    最近更新 更多