POSIX 消息队列(上):API编程实例
POSIX 消息队列
- 相关API
- mq_open: 创建或打开一个消息队列
- mq_send: 向消息队列写入一条消息
- mq_receive:从消息队列读取一条消息
- mq_close: 关闭进程的打开消息队列
- mq_unlink: 删除一个消息队列
- mq_setattr:设置消息队列一些额外的属性
- mq_getattr:获取消息队列一些额外的属性
- mq_nofity: 异步通知
POSIX消息队列的相关API
创建或打开IPC对象
- 函数原型:
- mqd_t mq_open(const char *name, int oflag);
mqd_t mq_open(const char *name, int oflag, mode_t mode, struct mq_attr *attr);
- mqd_t mq_open(const char *name, int oflag);
- 函数功能:使用指定名字创建或打开一个对象,返回该对象的句柄
- 函数参数:
- name:用来标识要创建或打开的对象
- oflag:O_CREAT/O_EXCL /O_READONLY/O_WRONLY/O_RDWR/O_NONBLOCK
- mode:位掩码,权限设置
- attr:设置消息队列的属性,若为NULL,使用默认属性,Linux3.5以后版本也可以通过/proc查看设置
- 函数返回值
- 成功:返回消息队列的IPC对象描述符
- 失败:返回-1,并设置errno
关闭POSIX消息队列
- 函数原型:
- int mq_close(mqd_t mqdes);
- 函数功能&