Chinaunix首页 | 论坛 | 博客
  • 博客访问: 535975
  • 博文数量: 142
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1452
  • 用 户 组: 普通用户
  • 注册时间: 2013-09-12 16:28
文章分类

全部博文(142)

文章存档

2016年(10)

2015年(60)

2014年(72)

我的朋友

分类: LINUX

2015-01-04 15:11:55

int msgget(key_t key, int oflag);
int semget(key_t key, int nsems, int oflag);
int shmget(key_t key, size_t size, int oflag);
创建和打开一个IPC对象的三个get函数的第一个参数key是类型为key_t的IPC键,返回值identifier是一个整数标识符。
对于key值,有两种选择:
(1)调用ftok,给它传递pathname和id
(2)指定key为IPC_PRIVATE
所有三个get函数都有一个名为oflag的参数,它指定IPC对象的读写权限位(ipc_perm结构的mode成员),并选择创建一个新的IPC对象还是访问一个已存在的IPC对象。
2.设置oflag参数的IPC_CREAT位但不设置它的IPC_EXCL位时,如果所指定键的IPC对象不存在,那就创建一
1.指定key为IPC_PRIVATE能保证创建一个唯一的IPC对象。个新的对象,否则返回该对象。
3.同时设置oflag的IPC_CREAT和IPC_EXCL位时,如果所指定键的IPC对象不存在,那就创建一个新的对象,否则返回一个EEXIST错误,因为该对象已存在。
oflag参数 key不存在 key已存在
无参数 出错,errno=ENOENT 成功,引用已存在对象
IPC_CREAT 成功,创建新对象 成功,引用已存在对象
IPC_CREAT | IPC_EXCL 成功,创建新对象
错误,errno=EEXIST

阅读(976) | 评论(0) | 转发(0) |
0

上一篇:vim 替换操作

下一篇:IPC权限

给主人留下些什么吧!~~