消息队列的创建及打开|学习笔记

简介: 快速学习消息队列的创建及打开

开发者学堂课程【物联网开发- Linux 高级程序设计全套视频消息队列的创建及打开】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/660/detail/11045


消息队列的创建及打开

 

内容介绍:

一、如何创建或打开消息队列

二、代码演示

 

一、如何创建或打开消息队列

#include<sys/msg.h>

Int msgget(key_t key, int msgflg);

1、功能

创建一个新的或打开一个已经存在的消息队列。如果消息队列不存在则创造一个新的,存在则通过key值打开,不同的进程调用此函数,只要用相同的key值就能得到同一个消息队列的标识符。(返回值是消息队列号。

2、参数

Key:IPC键值。

msgflg:标识函数的行为及消息队列的权限。

msgflg的取值:

IPC_CREAT:创建消息队列

IPC_EXCL:检测消息队列是否存在(与open_EXCL是一样的)

位或权限位:消息队列位或权限位后可以设置消息队列的访问权限,格式和open函数的mode_t一样,但可执行权限未使用。

3、返回值

成功:消息队列的标识符,失败:返回值-1

4、使用shell命令操作消息队列

查看消息队列

Ipcs  -q

删除消息队列

Ipcrm -q msqid

 

二、代码演示

#include <stdio.h>

#include <unistd.h>

#include <sys/types.h>

#include <sys/ipc.h>

#include <sys/msg.h>\\头文件

Int main(int argc, char *argv[ ])

{

key_t key;\\定义一个变量名字为key

int msg_id;\\定义一个存放消息队列的变量

key = ftok(“.”,1);\\创一个路径

if(key ==-1)

{

perror(“ftok”);

return 0;

}

Printf(“key = %d\n”,key);

msg_id = msgget(key,IPC_CREAT|0666);\\创建或打开一个消息队列

printf(“msg_id =%d\n”,msg_id);\\打印一个消息队列号

return 0;

}

得到结果:

vi msgget.c

gcc msgget.c-o magget

/msgget\\创建

key =16845002

msg_id =0

image.gif\\在运行一次程序,得到的进程是一样的

./msgget

key =16845003

msg_id =0

image.gif\\查看消息队列的方式:

ipcs -q

\\删除消息队列的方法:

ipcrm -q

相关文章
|
2月前
|
消息中间件 存储 中间件
【SpringCloud Stream消息驱动、设计思想以及整合rabbitmq消息队列案例--学习笔记】
【SpringCloud Stream消息驱动、设计思想以及整合rabbitmq消息队列案例--学习笔记】
105 0
|
消息中间件 监控 Java
手把手系列:消息队列 MNS 实操讲|学习笔记
快速学习手把手系列:消息队列 MNS 实操讲
605 0
手把手系列:消息队列 MNS 实操讲|学习笔记
|
消息中间件 运维 RocketMQ
消息队列 MNS 简史|学习笔记
快速学习消息队列 MNS 简史
361 0
消息队列 MNS 简史|学习笔记
|
消息中间件 安全 Serverless
消息队列 MNS 特性|学习笔记
快速学习消息队列 MNS 特性
207 0
|
消息中间件 弹性计算 运维
初步了解消息队列 Kafka 版|学习笔记
快速学习初步了解消息队列 Kafka 版
148 0
|
消息中间件 存储 新零售
初步了解消息队列 RabbitMQ 版|学习笔记
快速学习初步了解消息队列 RabbitMQ 版
155 0
|
消息中间件 移动开发 大数据
阿里云消息队列产品选型| 学习笔记
快速学习阿里云消息队列产品选型
566 0
阿里云消息队列产品选型| 学习笔记
|
消息中间件 存储 弹性计算
消息队列 kafka 销售指南| 学习笔记
快速学习消息队列 kafka 销售指南
199 0
消息队列 kafka 销售指南| 学习笔记
|
消息中间件 运维 物联网
微消息队列 MQTT 销售指南| 学习笔记
快速学习微消息队列 MQTT 销售指南
278 0
微消息队列 MQTT 销售指南| 学习笔记
|
消息中间件 存储 RocketMQ
消息队列和索引文件恢复|学习笔记
快速学习消息队列和索引文件恢复
99 0
消息队列和索引文件恢复|学习笔记

热门文章

最新文章