我正在寫C中的一些軟件,遞歸列出給定目錄中的所有文件,現在我需要解決內部碎片問題。MINIX內部碎片2
我花了很長時間研究這個,發現ext2的內部碎片只發生在最後一個塊中。我知道從理論上的inode號碼你應該能夠得到第一個和最後一個塊地址,但我不知道如何。
我已經調查stat()
,fcntl()
和各種方式。我如何從inode號碼獲取最後的塊地址?
我也想通了,一旦我有最後一個塊,我可以測試一下,看看有多少可用空間是在該塊的地址,這會給我的內部碎片。
我知道有一個get_inode
和一個get_block
命令,但除此之外不知道!
檢查,如何'filefrag'公用工程。 http://linux.die.net/man/8/filefrag說它使用FIEMAP或FIBMAP - 它是ioctl的 – osgx
謝謝,即時通訊正在尋找現在找到filefrags代碼,看看它是如何做到的... – Charlie
Ollie,它是e2fsprogs的一部分,路徑是'/ misc/filefrag.c'。這個工具是特定於linux的,並且可能不適用於某些FS(支持EXT2/3/4) – osgx