从Linux上的存储卡读取原始数据

时间:2019-04-12 17:56:16

标签: c memory raw-data

我想在Linux操作系统上使用c从存储卡读取分配单元512b, 如何使用(fopen)打开存储卡的(原始数据)?

1 个答案:

答案 0 :(得分:1)

  

在Linux上,如何使用(fopen)打开存储卡的(原始数据)?

假定操作系统识别出卡的存在,它将把卡作为设备文件提供给用户程序。例如,在我的系统上,通常为/dev/sdb,但由于您的原因(甚至出于各种原因,在我的系统上),它很容易会有所不同。只要您具有足够的特权,就可以像打开普通文件一样打开适当的文件并从中读取数据。那么,仅依靠标准C函数,就可以这样做:

unsigned char data[512];
FILE *card = fopen("/dev/name_of_device", "r");
// if (card == NULL) handle error ...
size_t count = fread(data, sizeof data, 1, card);
// if (count != 1) handle error ...