⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ysmsgqueue.h

📁 电力故障信息采集,主要是针对南自的保护装置,这个程序用在Linux操作系统下
💻 H
字号:
#include "ysheader.h"class CBMessageQueue{    public:    CBMessageQueue()    {    }        ~CBMessageQueue()    {	    }    public:    int m_MessageQid;						//消息队列的qid    public:    int Open_MessageQueue(key_t keyval)				//创建一个消息队列    {	int qid=0;	if((qid=msgget(keyval,IPC_CREAT|0660))==-1)	{	    return -1;	}	return qid;    }        int Send_Message(int qid,void* qbuf,int iSize)			//发送消息    {	int result=-1;	if((result=msgsnd(qid,qbuf,iSize,0))==-1)	    return -1;	return result;    }        int Read_Message(int qid,long type,void* qbuf,int iSize)		//从消息队列中读取消息    {	int result=-1;	if((result=msgrcv(qid,qbuf,iSize,type,0))==-1)	    return -1;	return result;    }        int Peek_Message(int qid,long type)				//检查是否有满足条件的消息    {	int result=-1;	if((result=msgrcv(qid,NULL,0,type,IPC_NOWAIT))==-1)	{	    if(errno==E2BIG) return 1;	}	return 0;    }        int Get_QueueDs(int qid,struct msqid_ds *qbuf)			//获取消息队列的内部数据结构    {	if(msgctl(qid,IPC_STAT,qbuf)==-1)	    return -1;	return 0;    }        int Change_QueueMode(int qid,char *mode)			//改变队列的模式    {	struct msqid_ds tmpbuf;	sscanf(mode,"%ho",&tmpbuf.msg_perm.mode);	if(msgctl(qid,IPC_SET,&tmpbuf)==-1)	    return -1;	return 0;    }        int Remove_MessageQueue(int qid)				//删除一个消息队列    {	if(msgctl(qid,IPC_RMID,0)==-1)	    return -1;	return 0;    }};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -