client.c

来自「本代码是linux消息机制部分的示例」· C语言 代码 · 共 54 行

C
54
字号
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <errno.h> #include <sys/types.h> #include <sys/ipc.h> #include <sys/msg.h> #include <sys/stat.h>#define MSG_FILE "server.c" #define BUFFER 255 #define PERM S_IRUSR|S_IWUSR struct msgtype { 	long mtype; 	char buffer[BUFFER+1]; };int main(int argc,char **argv) { 	struct msgtype msg; 	key_t key; 	int msgid;       		if(argc!=2) 	{ 		fprintf(stderr,"Usage:%s string\n\a",argv[0]); 		exit(1); 	}       		/* 创建关键字 */	if((key=ftok(MSG_FILE,'a'))==-1) 	{ 		fprintf(stderr,"Creat Key Error:%s\a\n",strerror(errno)); 		exit(1); 	} 	/* 创建信号量 */	if((msgid=msgget(key,PERM))==-1) 	{ 		fprintf(stderr,"Creat Message Error:%s\a\n",strerror(errno)); 		exit(1); 	}       		msg.mtype=1; 	strncpy(msg.buffer,argv[1],BUFFER); 		msgsnd(msgid,&msg,sizeof(struct msgtype),0);      // 发送消息 	memset(&msg,'\0',sizeof(struct msgtype)); 	msgrcv(msgid,&msg,sizeof(struct msgtype),2,0);    // 接受消息	fprintf(stderr,"Client receive:%s\n",msg.buffer); // 显示消息		exit(0); } 

⌨️ 快捷键说明

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