我正在用C语言编写一些软件,该软件以递归方式列出给定目录中的所有文件,现在我需要计算内部碎片。
我花了很长时间进行研究,发现ext2的内部碎片仅发生在最后一个块中。 我知道从理论上讲,一个inode编号应该可以获取第一个和最后一个块地址,但是我不知道如何。
我研究了stat()
, fcntl()
和各种方法。 如何从inode编号获得最后一个块地址?
我还发现,一旦有了最后一个块的地址,就可以测试该块的可用空间,这将给我内部碎片。
我知道有一个get_inode
和get_block
命令,但get_block
!