1

私の純粋なC++ネイティブプロセス(adbを使用してターミナルから実行)では、Android2.3SGS2のSDカードから直接ブロックを読み取ろうとしています。私のコードはroot権限で実行されているので、問題にはなりません。

SDカードのメモリがマップされていることを知っている/sys/block/mmcblk1ので、それを開きます。

int fd = open("/sys/block/mmcblk1", O_RDONLY);

成功します。今、私がそれから読み込もうとしているとき:

bytes_read = read(fd, buffer, 4096);

「ディレクトリです」というエラーが表示されます

まあ、私はこれがディレクトリであることを知っていますが、それでも機能するはずです、おそらく他のいくつかのフラグが開いているのですか?

これどうやってするの?

4

1 に答える 1

0

はは!私の間違いは確かに私がディレクトリから読み込もうとしたことでした/sys/block/mmcblk1。しかし、私はから読むことを試みるべきでした/dev/block/mmcblk1

これは完璧に機能します。

于 2012-12-06T12:39:00.470 に答える