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情報が出力されます
ここに記載されている詳細