“这一路走来的诽谤和误伤,今天看来是一记耳光,明天看来是一把糖。”
The slander and misunderstanding in the growth maybe a slap on our faces today, yet it will be a handful of candy in our lives tomorrow.
进程通信方式之IPC通信机制2(共享内存)
int shmget(key_t key, size_t size, int shmflg);
void *shmat(int shmid, const void *shmaddr, int shmflg);
int shmdt(const void *shmaddr);
int shmctl(int shmid, int cmd, struct shmid_ds *buf);
共享内存
共享内存的思想很朴素,进程与进程之间虚拟内存空间本来相互独立,不能互相访问的,但是可以通过某些方式,使得相同的一块物理内存多次映射到不同的进程虚拟空间之中,这样的效果就相当于多个进程
像上图所示,当进程P1向其虚拟内存中的区域1写入数据时,进程2就能同时在其虚拟内存空间的区域2看见这些数据,中间没有经过任何的转发,效率极高。
相关API
int shmget(key_t key, size_t size, int shmflg);
#include <sys/ipc.h>
#include <sys/shm.h>
int shmget(key_t key, size_t size, int shmflg);
函数功能: