开发者学堂课程【物联网开发- Linux 高级程序设计全套视频:Msgctl 消息队列控制】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/660/detail/11049
Msgctl 消息队列控制
内容介绍:
一、队列控制
二、实例
一、队列控制
1.格式:
#include <sys/nsg, h>
int msgctl (int usgid , int cmd, struct.msqid_ds *buf);
2.功能:
对消息队列进行各种控制,如修改消想队列的属性,或删除消息消息队列。
3.参数:
msqid:消息队列的标识符。
cmd:函数功能的控制。
buf: msqid_ds 数据类型的地址,用来存放或更改消息队列的属性。
cnd:函数功能的控制
IPC_RMID:删除由 msqid 指示的消息队列,将它从系统中删除并破坏相关数据结构。
IPC_STAT:将 msqid 相关的数据结构中各个元素的当前值存入到由buf 指向的结构中。
IPC_SET:将 msqid 相关的数据结构中的元素设置为由 buf 指向的结构中的对应值。
4.返回值:
成功:0 失败:-1
二、实例
1.删除消息队列
ret = msgctl(msg_id , IPC_RMID,NULL);
//不保存消息队列的属性用NULL
2.保存消息队列
struct msqid_ds tmp;
ret = msgctl(msg_id , IPC_STAT,&tmp); //保存消息队列的属性
3.设置结构体属性
struct msqid_ds tmp;
ret = msgctl(msg_id , IPC_SET,&tmp); //设置消息队列的属性(将 tmp 指向的结构体的内容设置为消息队列的属性)