我想在Linux操作系统上使用c从存储卡读取分配单元512b, 如何使用(fopen)打开存储卡的(原始数据)?
答案 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 ...