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

📄 commclient.cpp

📁 一个通信模块
💻 CPP
字号:
#include <sys/types.h>#include <sys/ipc.h>#include <sys/msg.h>#include <stdio.h>#include <unistd.h>#define RKEY 0x9001L /*读消息队列的KEY值*/ #define WKEY 0x9002L /*写消息队列的KEY值*/ #define MSGFLG 0666  /*消息队列访问权限*/ #define IPC_WAIT 0   /*等待方式在include文件中未定义*/ class MSGBUF{public:	long mtype; 	char mtext[2*1024]; }; int main(){	int rmsqid; /*读消息队列标识符*/ 	int wmsqid; /*写消息队列标识符*/ 	/*创建读队列,写队列*/	/*若读消息队列已存在就取得标识符,否则则创建并取得标识符*/ 	if ((rmsqid=msgget(WKEY,MSGFLG))<0) 	{ 		printf("get read message queue failed\n"); 		exit(1); 	}		/*若写消息队列已存在则失败,若不存在则创建并取得标识符*/ 	if ((wmsqid=msgget(RKEY, MSGFLG))<0) 	{ 		printf("get write message queue failed\n"); 		exit(2); 	}	MSGBUF rBuf;	sprintf(rBuf.mtext, "经过核磁共振成像");	rBuf.mtype = getpid();	if (msgsnd(wmsqid,&rBuf,sizeof(MSGBUF)-sizeof(long), IPC_WAIT)==0) 		printf("send message OK\n"); 	else	{ 		printf("send message failed, \n"); 		exit(4); 	} 	/*接收指定类型的消息*/ 	if (msgrcv(rmsqid,&rBuf,sizeof(MSGBUF)-sizeof(long),getpid(),IPC_WAIT)>=0) 	{		printf("get %ld type message from queue:%s\n", rBuf.mtype,rBuf.mtext); 	}	else 	{ 		printf("get message failed\n"); 		exit(3); 	}	return 0;	}

⌨️ 快捷键说明

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