server.c

来自「进程间通信的实验代码」· C语言 代码 · 共 51 行

C
51
字号
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <signal.h>#include <sys/msg.h>#include <sys/ipc.h>#include "message.h"int msqid=-1;void sig_handle(int signo){	if (msqid!=-1)		msgctl(msqid,IPC_RMID,NULL);        printf("server quit...\n");	exit(0);}int main(){	struct mymsgbuf msgbuf;	int left,right;	char c;        int length;	if ((msqid=msgget(999,0666))!=-1)	{		msgctl(msqid,IPC_RMID,NULL);	}	if ((msqid=msgget(999,IPC_CREAT|0666))==-1)	{		printf("error:getmsg\n");		exit(1);	}	signal(SIGINT,sig_handle);  /*LINUX-CTRL-D*/	for (;;)        {	   if (msgrcv(msqid,&msgbuf,256,1L,0)==-1)	   {	      	printf("error:msgrcv\n");		    exit(1);	   }             printf("Receive message :\n");	   printf("\tid:\t %s\n",msgbuf.student.id);	   printf("\tname:\t %s\n",msgbuf.student.name);	   printf("\tage:\t %d\n",msgbuf.student.age);	   printf("\tEmail:\t %s\n\n",msgbuf.student.e_mail);        }       	msgctl(msqid,IPC_RMID,NULL);	exit(0);}

⌨️ 快捷键说明

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