2 つのプロセス間でメモリを共有したい。
の後mmap()
、アドレスを取得し、 mapStart
オフセットを追加しmapStart
て取得mapAddr
し、mapAddr
マップされた PAGE_SIZE を超えないようにします。までに
書くときmapAddr
memcpy((void *)mapAddr, data, size);
全て大丈夫。
しかし、私が読んだmapAddr
とき
memcpy( &data, (void *)mapAddr, size);`
その場合、システムがクラッシュします。
誰がなぜ知っていますか?
同様の問題はここにあります
情報を追加: @Tony Delroy、@J-16 SDiZ
mmap 関数は次のとおりです。
mapStart = (void volatile *)mmap(0, PAGE_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_LOCKED, memfd, pa_base);
システム クラッシュ: OS エラー メッセージは表示されません。コンソールにMCA
情報が出力されます
ここに記載されている詳細