В моем чистом родном процессе C ++ (который я запускаю из терминала с помощью adb) я пытаюсь прочитать блок непосредственно с SD-карты в Android 2.3 SGS2. Мой код работает с правами root, поэтому это не должно иметь значения.
Я знаю, что память SD-карты сопоставлена с /sys/block/mmcblk1
вот я и открываю
int fd = open("/sys/block/mmcblk1", O_RDONLY);
который преуспевает. Теперь, когда я пытаюсь читать с него:
bytes_read = read(fd, buffer, 4096);
Я получаю сообщение об ошибке: «Это каталог»
Ну, я знаю, что это каталог, но он все еще должен работать, может быть, с некоторыми другими флагами под открытым небом?
Как я могу это сделать?
Ха-ха!
Моя ошибка была в том, что я действительно пытался читать из каталога /sys/block/mmcblk1
,
Но я должен был попытаться прочитать с /dev/block/mmcblk1
!
Который работает отлично.
Других решений пока нет …