c - 原始硬盘访问/dev/sda] vs/dev/sg[y]?

标签 c linux io hard-drive scsi

我一直在研究一个从硬盘读取数据的程序。我想知道使用 sda 设备还是 sg0 设备更好?我知道如果你要做一些事情,比如使用 sg 驱动程序进行查询等,那么 sg0 更好用,但我想从驱动器读取数据......另一个区别是 sg0 是一个字符设备而 sda 是一个 block 设备

最佳答案

/dev/sda 是 block 设备 - 您可以通过 open 从 C 程序打开它,然后读/写/查找/pread/pwrite(常规的 Linux I/O 函数!),然后关闭它。

“sg”驱动程序是一种更智能、更统一的访问存储设备的方式——您需要形成一个 SCSI 命令以通过“sg”驱动程序向设备发送内容,并且您需要解析它将发送的消息你回来了。

更多信息请看here .

关于c - 原始硬盘访问/dev/sda] vs/dev/sg[y]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22189052/

相关文章:

c - 两种不同结果(即正面或负面)的数组问题

C 编程奇怪的结构设置

linux - 制作一个可点击的 Linux 桌面快捷方式来执行 ant 构建脚本

c - 如何无害地杀死子进程

c# - 如何获取文件创建日期和修改日期

java - 为什么 InputStreamReader 不实时读取进程的输出?

file - 写入带有 rust 迹的文件时会写入多余的行

c++ - <limits> 和 <climits> 等价

c - 取消引用另一个不兼容类型的指针的别名

linux - grep 某些文件中的模式并在每个文件中打印总和