内核共享内存
shmget
头文件 函数
#include <sys/ipc.h>
#include <sys/shm.h>
// 得到一个共享内存标识符或创建一个共享内存对象并返回共享内存标识符
int shmget(key_t key, size_t size, int shmflg)
// 成功:返回共享内存的标识符; 出错:-1,错误原因存于error中
key | 会建立新共享内存对象 |
---|---|
size | 大于0的整数:新建的共享内存大小,以字节为单位 |
size = 0 | 只获取共享内存时指定为0 |
shmflg | 共享内存标识符 |
shmflg = IPC_CREAT | 如果内核中不存在键值与key相等的共享内存,则新建一个共享内存;如果存在这样的共享内存,返回此共享内存的标识符 |
shmflg = IPC_CREAT | IPC_EXCL | 如果内核中不存在键值 与key相等的共享内存,则新建一个共享内存;如果存在这样的共享内存则报错 |
shmflg = 0 | 取共享内存标识符,若不存在则函数会报错 |
shmat
#include <sys/types.h>