2016-03-24 12 views
0

Я пытаюсь получить доступ к суперблоку при открытии и чтении файловой системы ext2 из файла vdi. Я хочу использовать структуру ext2_super_block, которая существует в файле ext2.h (см. Строку 415 из http://lxr.free-electrons.com/source/fs/ext2/ext2.h). Я хотел бы просто #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.