Читайте сырые данные с карты памяти на Linux - PullRequest
0 голосов
/ 12 апреля 2019

Я хочу прочитать блок выделения 512b с карты памяти, используя c на ОС Linux, как открыть (необработанные данные) карты памяти с помощью (fopen)?

1 Ответ

1 голос
/ 12 апреля 2019

в 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 ...
...