我正在尝试从 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 需要包含的任何文件也没有。
我怎样才能包含这个文件来得到那个结构?我应该自己构建它(读入时保存超级块的结构)吗?如果我自己构建它,读入的内容会有什么不同?
到目前为止,这是我的系统调用来完成此操作的内容(显然目前不起作用):
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));