3.1 概述
System V IPC 包含:System V消息队列、System V信号量、System V共享内存。
3.2 key_t 键和 ftok函数
这三种类型的System V IPC使用key_t值最为它们的名字。
key_t通常是一个32位的整数,由下面2中方式生成:
(1)ftok()函数
(2)IPC_PRVATE
3.3 oflag参数
oflag参数 | key不存在 | key已存在 |
0 | 出错,errno = ENOENT | 成功,引用已存在对象 |
IPC_CREAT | 成功,创建新对象 | 成功,引用已存在对象 |
IPC_CREAT | IPC_EXCL | 成功,创建新对象 | 出错,errno = EEXIST |
3.4 IPC权限
创建或者打开IPC对象是,oflag的标志要加上 O_CREATE | 0666。
0666的意思是八进制的,用户组:可读可写;组成员:可读可写;其他用户:可读可写
3.5 内核限制
System V IPC的多数实现在内核中有限制,例如消息队列的最大数目、每个信号量集的最大信号量数目。