系统相关
首页 > 系统相关> > 从Linux上的C程序直接访问没有FS的硬盘

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

作者:互联网

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

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

我打算在Linux环境中编写一些用于学习C编程的程序(我知道C语言,Python,Perl和Java),但对Linux环境缺乏信心.

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

我不知道使用标准C I / O功能是否可行,否则我不得不写一个“设备驱动程序”或类似的东西……

解决方法:

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

如果你想玩块设备,我建议先使用loop device,它将普通文件作为块设备.例如:

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

之后,/ dev / loop0的行为就好像它是一个块设备,但所有写入的信息都将存储在文件中.

标签:c-3,linux,hard-drive
来源: https://codeday.me/bug/20190923/1815472.html