gpt4 book ai didi

c - 在 Linux 上从 C 程序直接访问没有 FS 的硬盘

转载 作者:IT王子 更新时间:2023-10-29 00:15:48 24 4
gpt4 key购买 nike

我想直接从 C 程序访问整个硬盘。上面没有 FS,也永远不会是一个。

我只想打开/dev/sda(例如)并在磁盘的 block /扇区级别执行 I/O。

我打算在Linux环境下写一些学习C编程的程序(我会C语言、Python、Perl和Java),但对Linux环境缺乏信心。

为了我的学习目的,我正在考虑使用 kyoto-cabinet 并将与计算的哈希对应的值直接保存到硬盘的“ block /扇区”中,记录对:“哈希, block /扇区引用"到 kyoto-cabinet 哈希数据库文件中。

我不知道使用标准 C I/O 函数是否可行,否则我必须编写“设备驱动程序”或类似的东西...

最佳答案

如其他地方所述,在 *NIX 系统下,像 /dev/sda 这样的 block 设备可以作为普通文件访问。请注意,如果文件系统是从设备挂载的,则将其作为文件打开以进行写入将失败。

如果你想玩 block 设备,我建议先使用 loop device ,它将普通文件呈现为 block 设备。例如:

dd if=/dev/zero of=./loop_file_10MB bs=1024 count=10K
losetup /dev/loop0 $PWD/loop_file_10MB

在那之后,/dev/loop0 就像一个 block 设备一样,但所有写入的信息都将存储在文件中。

关于c - 在 Linux 上从 C 程序直接访问没有 FS 的硬盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3520459/

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