详细内容、示例代码参考:野火教程--共享内存
正常情况两个进程间的虚拟内存是隔离的,无法互相访问。
共享内存就是两个进程把自己的进程空间的一部分映射到一块统一的物理内存中,这样两个进程通过这块共享内存就可以交互数据了。
从原理上说,这块共享的内存块属于临界资源,需要在两个进程读写这块内存时做好互斥访问。
后续:
野火给的示例代码,用到信号量来互斥访问共享内存,但是两个客户程序都去检查是否创建,若没创建则创建,但是初始化时候只在读用户程序中执行了。这样感觉可能不是可靠的。
感觉应该用并初始化的相关接口,或者直接只由一个程序创建信号量,另一个只是用就好。