共享内存
共享内存是两个或多个进程共同占有一块内存空间,这些进程可以是具有亲缘关系的,也可以事不具有亲缘关系的,同一块物理内存被映射到两个进程,这两个进程都可以访问这段共享空间从而实现进程间通信。
* 共享内存是最快的IPC形式
* 一般进程间数据传递需要经过内核,但共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。
* 共享内存若无数据,也不会卡
* 共享内存生命周期随内核
* 共享内存没有同步与互斥机制
用ipcs -m查看当前的共享内存
对于每一个共享内存,内核会为其定义一个shmid_ds结构体类型。
在usr/include/linux/shm.h下
下面介绍一些函数:
shmget函数
功能:创建共享内存
参数:
key:共享内存段的名字
size:共享内存的大小
shmflg:由九个权限构成