gpt4 book ai didi

c - 读取 inode 返回无效数据

转载 作者:太空宇宙 更新时间:2023-11-04 00:09:57 25 4
gpt4 key购买 nike

我正在尝试编辑一些 inode 数据。但是,当我读取任何 inode 时,我只会得到零或无效数据。以下是我正在做的主要步骤:

//reading, say inode number 15 - it belongs to group 0, and it's a valid inode  
int inode_no=15
//buffer to hold inode structure
struct ext2_inode inode_buffer_test1;
//points to the start of group descriptor structure. It is correct, I have validated the results with dumpe2fs.
struct ext2_group_desc *grpdesc;
//file descriptor of a device file holding ext2 FS, opened in O_RDONLY mode
int fd;

...

lseek64(fd,(long long)grpdesc[0].bg_inode_table*BLOCK_SIZE + sizeof(struct ext2_inode)*(inode_no-1),SEEK_SET);
read(fd,&inode_buffer_test1,sizeof(struct ext2_inode));
printf("file size=%d, blocks=%d\n",inode_buffer_test1.i_size,inode_buffer_test1.i_blocks);

对于其他 inode,我得到的只是零数据或有时是无效数据。我测试了从“ls -i filename”命令获得的不同 inode 编号,并使用“stat filename”验证了数据。然而,组描述符是正确的,inode 表的位置也是正确的(使用 dumpe2fs 验证)。

我还尝试使用“lde”工具 (lde -i 15/dev/sdb1) 获取 inode 信息。它还提供无效数据。请让我知道我在这里缺少什么。

提前致谢,马里哈

最佳答案

BLOCK_SIZE 是否正确?我将验证偏移量计算是否与使用 od 显示的内容相对应。

关于c - 读取 inode 返回无效数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4360867/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com