2016-03-24 65 views
0

我試圖從vdi文件中打開和讀入ext2文件系統的超級塊。我想使用ext2.h文件中存在的struct ext2_super_block(參見http://lxr.free-electrons.com/source/fs/ext2/ext2.h的第415行)。我只想#include <ext2.h>,但由於我當前的unix操作系統是ext3/ext4,所以頭文件不在我的系統中,也不是ext2.h需要包含的任何文件。訪問vdi中的超級塊,ext2

如何包含此文件獲取該結構?我是否應該自己構建它(讀入時保存超級塊的結構)?如果我自己構建它,讀取的內容會有所不同?

這裏是我到目前爲止我的系統調用來完成這個(顯然不此刻工作):

fd = open (argv[1], O_RDONLY); 
    .......check for errors in open 
lseek(fd, OFFSET, SEEK_SET); //to skip to superblock 
read (fd, &mySB, sizeof(struct ext2_superblock)); 

回答

0

你可能最好使用libext2fs而不是內核頭文件。它知道所有的結構,它意味着在用戶空間中使用,並且可以移植到非GNU非Linux主機。