特定のディレクトリ内のすべてのファイルを再帰的にリストするソフトウェアをCで作成している最中で、内部の断片化を解決する必要があります。
私はこれを調査するのに長い時間を費やしましたが、ext2 の内部フラグメンテーションは最後のブロックでのみ発生することがわかりました。理論的には inode 番号から最初と最後のブロック アドレスを取得できるはずですが、方法がわかりません。
stat()
、fcntl()
およびあらゆる種類の方法を調べました。inode 番号から最後のブロック アドレスを取得するにはどうすればよいですか?
また、最後のブロックのアドレスを取得したら、そのブロックにどれだけの空き領域があるかをテストして、内部の断片化を確認できることもわかりました。
get_inode
とget_block
コマンドがあることは知っていますが、それ以外はわかりません!