2013-03-20 27 views
0

我試圖在ext2文件系統中打印所有單個間接塊。我可以直接打印直接塊(0-11),但我不知道如何到達單個間接塊,然後是雙重和三重間接塊。如果我看看ino-> i_block [12]的價值,我該如何使用它來達到它指向的位置?我敢肯定,我想的東西很容易在這裏如何在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])包含一個三重間接塊的塊號。

+0

來源:https://www.cs.washington.edu/education/courses/451/09sp/projects/project3light/project3_light.html – 2013-03-20 07:19:08