ysmsgqueue.h
来自「电力故障信息采集,主要是针对南自的保护装置,这个程序用在Linux操作系统下」· C头文件 代码 · 共 77 行
H
77 行
#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 + =
减小字号Ctrl + -
显示快捷键?