我已经在EXT2文件系统中打开了 super 块和组描述符,但是我不知道如何读取其中的根目录或文件。
这是我得到的一些东西
fd=open("/dev/sdb2", O_RDONLY);
lseek(fd, SuperSize, SEEK_SET);
read(fd, &super_block, SuperSize);
lseek(fd, 4096, SEEK_SET);
read(fd, &groupDesc, DescriptSize);
但是下一部分似乎不起作用...
lseek(fd, super_block.s_log_block_size*groupDesc.bg_inode_table, SEEK_SET);
lseek(fd, InodeSize*(EXT2_ROOT_INO-1), SEEK_CUR);
read(fd, &root, InodeSize);
最佳答案
我不确定您要问的是什么,但是这里有:
要读取目录的内容,基本上,您需要查看其指针块内部,查看由指针指定的磁盘上的相应块,并读取在那里找到的内容以获取目录中文件的描述。
这是一个相当高的建议,但是其余的实际上归结为对系统结构本身的细节的考虑。
我建议您看一下第4章:
https://www.nongnu.org/ext2-doc/ext2.html
还要确保您清楚自己所涉及的特定结构,应在作业中为您提供这些结构...
关于c - 我如何读取和遍历inode,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6287606/