浅析IPC之Posix共享内存
共享内存是IPC的一种方式,以下简要介绍Posix实现共享内存的简单原理
1.原理
Posix共享内存借助文件完成。某一个进程创建一个共享内存文件,将这个文件映射到该进程的虚拟地址空间,对它进行读写。另一个进程也将这个共享内存文件映射到它的虚拟地址空间。这个共享内存文件实际上只映射到一块物理内存空间内,这块物理内存空间同时对应着两个进程虚拟地址空间的一部分,这两个进程就可以借助这块物理内存进行通信了。
2.实现
int shm_open(const char *name, int oflag, mode_t mode);
这个函数类似于open函数,可以创建或者打开一个共享内存文件。当一个共享内存文件通过shm_open函数创建后,它就位于/dev/shm目录下。然后可以使用mmap函数将该共享内存文件映射到一个进程内对它共享内存文件进行修改。另一个进程通过shm_open函数打开该共享内存文件,也可以对它进行操作。这就实现了两个进程之间的通信。
参考:
https://blog.csdn.net/ababab12345/article/details/102931841