windows共享内存

在windows编程中避免不了使用共享内存,因为他是进程间通信、文件读取最简单的方式,有书上还说其他进程间通讯机制如管、油槽、WM_COPYDATA底层也是用的共享内存机制。关于使用方法还是请参考MSDN。

最近听说使用共享内存不安全,可能会被其他进程野指针无意中访问到。以前在windows教程中也看到过相关的说法:共享内存是使用的高2G地址空间,用户态使用的是低2G空间,所有进程是独享用户态内存的,但内核态内存是公用的,这样申请共享内存在内核态就会映射到所有的进程。貌似还挺合理。

还是看MSDN上的文档怎么说的

MapViewOfFile

image

也就是说将共享内存手动映射到当前进程后该内存地址才对进程可见。

有疑问才会学习,有求解才有进步!

原文地址:https://www.cnblogs.com/aishangxue/p/3616822.html