gpt4 book ai didi

linux - 从 ext3 文件系统读取 block ?

转载 作者:可可西里 更新时间:2023-11-01 11:44:58 27 4
gpt4 key购买 nike

在 block 级别访问 ext3 文件系统的最简单方法是什么?我不关心文件或原始字节,我只需要一次读取 FS 一个 block 。有没有一种简单的方法可以做到这一点(在 C 中)?或者也许是一个简单的应用程序,我可以从其来源中寻找灵感?我在网上找不到可用的教程,而且我有点不敢深入内核源代码以了解如何做。

最佳答案

如果您想要一个简单的应用程序,那么我建议您可以查看“dd”实用程序。我是 GNU Core Utility 的一部分.其源代码可供下载。看看它的主页,here .
如果您想从 C 代码实现相同的功能,请引用以下代码。希望这对你有帮助。 :)

#include <stdio.h>
#include <linux/fs.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

#define SECTOR_NO 10 /*read 10th sector*/

int main()
{
int sector_size;
char *buf;
int n = SECTOR_NO;

int fd = open("/dev/sda1", O_RDONLY|O_NONBLOCK);
ioctl(fd, BLKSSZGET, &sector_size);
printf("%d\n", sector_size);
lseek(fd, n*sector_size, SEEK_SET);

buf = malloc(sector_size);
read(fd, buf, sector_size);

return 0;
}

关于linux - 从 ext3 文件系统读取 block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1674012/

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