消息队列的使用与实现详解
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 保存错误代码。其接受的操作命令如下表所示:
| 命令 | 说明 |
超级会员免费看
订阅专栏 解锁全文
1万+

被折叠的 条评论
为什么被折叠?



