共享内存概念
共享内存指的是,在多处理器的计算机系统中,可以被不同的CPU访问大量内存。由于多个CPU需要快速访问存储器,所以必须对存储器进行缓存。在缓存中的数据被更新后,其他处理器也可能要进行读取,共享内存就需要立即更新,否则不同的处理器将读取到不同的数据。共享内存是Unix、Linux下多进程通信的一种方式之一,这种方法通常用于一个程序的多进程间通信。实际上多个进程可以通过共享内存来进行通信
有关函数接口
与共享内存有关的接口有四个:shmget,shmat,shmdt,shmctl
头文件<sys/shm.h>
<sys/types.h>
<sys/ipc.h>
进行共享内存的获取
int shmget(key_t key, size_t size, int shmflg)
参数
size 以页表为基本单位,是4k的整数倍(4096);