我想在两个进程之间共享内存。
之后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);
系统崩溃:没有任何操作系统错误消息,控制台打印一些MCA
信息
此处描述的详细信息