在具有低级别访问权限的pendrive上写入

时间:2011-02-28 15:48:03

标签: c++ c linux filesystems device-driver

我正在尝试为Linux创建一个低级格式化实用程序。是否有可用于访问磁盘驱动器并在特定位置写入的C / C ++库?

谢谢!

2 个答案:

答案 0 :(得分:5)

在Linux(以及其他类UNIX操作系统)中,可以通过特殊文件(如/dev/sda)访问像硬盘驱动器这样的块设计。您可以将其作为文件打开,进行搜索,阅读和书写。仅当从该设备挂载文件系统时,它才会失败。另请参阅man sd

以防万一,Linux的低级格式实用程序没有必要。只需使用0命令即dd,即可使用dd if=/dev/zero of=/dev/sda bs=512 count=...字节填充驱动器。之后,只需使用mkfs创建一个新的文件系统。所以你真的不需要C / C ++ API,它可以适用于简单shell脚本的几行。

祝你好运!

答案 1 :(得分:0)

我很确定你实际上无法格式化这些设备。或任何现代存储设备。现在每台设备都预先格式化,无法重新格式化(可能除特定供应商的软件或固件外)。

你还没有说出为什么要实现它。我的猜测是,如果你努力尝试,你就会“破坏”设备。

您可以通过标准块接口轻松地写入特定的“逻辑位置”,但实际上,可以在任何与物理位置没有固定关系的现代驱动器(即过去15年制造的驱动器)上。这在SDD上比在光盘上更为真实。