38、消息队列的使用与实现详解

消息队列的使用与实现详解

1. 消息队列基础操作

消息队列在进程间通信(IPC)中扮演着重要角色。当操作成功时,相关函数会返回消息队列的 IPC ID,这是一个零或正的值;若出现错误,则返回 -1,同时变量 errno 会包含错误代码。

1.1 访问消息队列

若要定位现有的消息队列,不要指定 IPC_CREAT 标志。若队列不存在,会返回错误。当不创建队列时, flags 参数可指定为 0,因为权限位会被忽略。

1.2 销毁消息队列

要对消息队列执行控制操作(包括销毁),需调用 msgctl(3) 函数:

#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>

int msgctl(int msqid, int cmd, struct msqid_ds *buf);
  • msqid :消息队列的 IPC ID。
  • cmd :命令常量。
  • buf :指向结构体的指针。

该函数成功时返回 0,返回 -1 时, errno 保存错误代码。其接受的操作命令如下表所示:
| 命令 | 说明 |

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值