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 需要包含的任何文件也没有。

我怎样才能包含这个文件来得到那个结构?我应该自己构建它(读入时保存超级块的结构)吗?如果我自己构建它,读入的内容会有什么不同?

到目前为止,这是我的系统调用来完成此操作的内容(显然目前不起作用):

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));
4

1 回答 1

0

你可能最好使用 libext2fs 而不是内核头文件。它知道所有的结构,它旨在用于用户空间,并且可以移植到非 GNU 非 Linux 主机。

于 2016-03-24T19:13:05.973 回答