首页 > 其他分享 >创建消息队列

创建消息队列

时间:2022-10-09 13:01:10浏览次数:51  
标签:attr msgsize 队列 创建 int mq 消息 include maxmsg

#include <stdio.h>
#include <fcntl.h>
#include <errno.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <mqueue.h>

struct mq_attr attr;
const int maxline=4096;

int main(int argc, char **argv) {
	int c, flags;
	mqd_t mqd;
	char errbuff[maxline];

	flags=O_RDWR | O_CREAT;
	while((c=getopt(argc, argv, "em:z:"))!=-1) {
		switch(c) {
			case 'e':
				flags|=O_EXCL;
				break;
			case 'm':
				attr.mq_maxmsg=atol(optarg);
				break;
			case 'z':
				attr.mq_msgsize=atol(optarg);
				break;
		}
	}

	if(optind != argc-1) {
		fprintf(stderr, "mqcreate [-e] [ -m maxmsg -z msgsize ] <name>\n");
		exit(-1);
	}

	if((attr.mq_maxmsg!=0&&attr.mq_msgsize==0) || (attr.mq_maxmsg==0&&attr.mq_msgsize!=0)) {
		fprintf(stderr, "must specify both -m maxmsg -z msgsize\n");
		exit(-1);
	}

	if((mqd=mq_open(argv[optind], flags, S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH, (attr.mq_maxmsg!=0) ? &attr:NULL))<0) {
		strerror_r(errno, errbuff, maxline);
		fprintf(stderr, "mq_open error: %s\n", errbuff);
		exit(-1);
	}

	mq_close(mqd);
	
	exit(0);
}

  

标签:attr,msgsize,队列,创建,int,mq,消息,include,maxmsg
From: https://www.cnblogs.com/donggongdechen/p/16771763.html

相关文章

  • Springboot创建项目(idea版本)
    一:概述由于springboot项目,不管是java工程还是web工程都可以直接以jar方式运行,所以推荐创建jar工程,这里创建jar工程项目为例。二:两种方式创建springboot项目1.第一种方式手动......
  • 快速创建表
    createtableemp2asselect*fromemp;原理:将一个查询结果当做一张表新建!!!这个可以完成表的快速复制查询结果也可以创建一张表:createtablemytableasselectempn......
  • springCloud- 搭建项目全部详细过程(创建一个父工程)
     这篇文章里边会有 IDEA 相关本地环境的配置,比如编码格式,等等。 另外这篇文章会详细的记录整个创建的过程,我都会有截图 前提条件需要:maven环境(配置过国内的镜像), idea......
  • Java多线程(二)线程创建
    三种创建方式1.继承Thread类2.实现Runnable接口3.实现Callable接口(了解) 继承Thread类自定义线程继承Thread类重写run()方法,编写线程执行体创建线程对象,调用start(......
  • 数据结构 3 栈和队列
    栈和队列也算是数据类型。以为都是在首位操作,栈和队列克服了线性表添加删除需要移动大量元素的弱点。栈仅在尾部进行插入和删除,尾部叫做栈顶,表头叫做栈底。后进先出。......
  • 状态机:给定规则下分类讨论——红黑树(+队列实验-银行模拟)
    状态机:分类讨论,为了递归与美观,把重复的去掉dueto二叉树不保证平衡,herecomesRed-Blacktree——每条路黑高相同,lmax<2lmin类似还有AVLT(1.44lgn,但维护代价大)红黑树......
  • 构造结构化的消息进行文件传输
    每个记录前冠以它的长度PIPE_BUF可原子地写往一个管道或FIFO的最大数据量把字节流分隔成各个记录由应用程序来实现#include<stdio.h>#include<string.h>#include<......
  • pytorch 创建图与叶子节点与根节点
    创建时用户直接给出的为叶子节点,没有fn由几个叶子节点推导来的为最终结果,为root节点,有fn。譬如:x=tt.tensor([1],dtype='flaot',requires_grad=True)y=x.sum()这里的x......
  • 消息队列的选型
    消息列队是什么?消息队列是在消息的传输过程中保存消息的容器。(百度百科)为什么要使用消息队列?优点与应用:异步处理,应用解耦,错峰与流控,消息通讯,数据分发,失败重试,日志处理......
  • C++优先队列(priority queue)及重载运算符
    定义:普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。在优先队列中,元素被赋予优先级。当访问元素时,具有最高优先级的元素最先删除。优先队列具有最高......