2016-03-24 18 views
0

Bir vdi dosyasından bir ext2 dosya sisteminin açılışında ve okunmasında süper bloğa erişmeye çalışıyorum. Ext2.h dosyasında bulunan ext2_super_block yapısını kullanmak istiyorum (http://lxr.free-electrons.com/source/fs/ext2/ext2.h satır 415'e bakın). Ben sadece #include <ext2.h> istiyorum ama geçerli unix işletim sistemim ext3/ext4 olduğundan, başlık dosyası sistemimde yok ve ext2.h'nin içermesi gereken dosyalardan biri de yok.vdi, ext2 süperblock'a erişim

Bu dosyayı nasıl ekleyebilirim? Kendi başıma oluşturmalı mıyım (süper bloğu okuyacağım yapı)? Eğer kendi başıma inşa edersem, okuma nasıl farklı olacak?

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

cevap

0

Sen libext2fs ziyade çekirdek başlıklarını kullanarak muhtemelen daha çok işinize:

İşte bu (tabii ki şu anda çalışmıyor) şimdiye kadar benim sistem tamamlamak çağrıları için gereken şey bu. Tüm yapıları bilir, kullanıcı alanında kullanılmasını gerektirir ve GNU olmayan Linux dışı ana bilgisayarlara taşınabilir.