gpt4 book ai didi

c - MINIX内部碎片2

转载 作者:行者123 更新时间:2023-11-30 14:26:49 25 4
gpt4 key购买 nike

我正在用 C 编写一些软件,它递归地列出给定目录中的所有文件,现在我需要计算出内部碎片。

我花了很长时间研究这个问题,发现ext2上的内部碎片只发生在最后一个 block 中。我知道理论上你应该能够从 inode 号获得第一个和最后一个 block 地址,但我不知道如何获得。

我研究了 stat()fcntl() 和各种方法。如何从 inode 编号获取最后一个 block 地址?

我还发现,一旦我有了最后一个 block 的地址,我就可以测试该 block 中有多少可用空间,这将为我提供内部碎片。

我知道有一个 get_inode 和一个 get_block 命令,但除此之外我一无所知!

最佳答案

我认为您无法通过常规系统调用(例如stat())获取磁盘 block 的地址。您可能必须在磁盘上找到原始 inode(这意味着访问原始磁盘,并且需要提升的权限)并从那里处理数据。

通常,您会发现文件的直接 block 、间接 block 、双间接 block 和三重间接 block 。然而,相关的文件系统类型已经像渡渡鸟一样消亡了(我想我已经在这千年没有见过这种文件系统类型了),所以现在这不太可能有多大帮助。

可能有一个非标准系统调用来获取信息,但我对此表示怀疑。

关于c - MINIX内部碎片2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8467053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com