2016-03-24 29 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主机。