我正在尝试从vdi文件中打开并读取ext2文件系统中的超级块。我想使用ext2.h文件中存在的struct ext2_super_block(参见http://lxr.free-electrons.com/source/fs/ext2/ext2.h的第415行)。我只想#include <ext2.h>
但是由于我当前的unix OS是ext3 / ext4,头文件不在我的系统中,也不是ext2.h需要包含的任何文件。
如何将此文件包含在内?我应该自己构建它(在读入时保存超级块的结构)吗?如果我自己构建它将如何读取不同?
这是我到目前为止完成此系统调用的内容(显然目前无效):
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 :(得分:0)
你可能最好使用libext2fs而不是内核头文件。它知道所有结构,它意味着在用户空间中使用,并且它可以移植到非GNU非Linux主机。