sy1.c

来自「linux中接受和发送信息,分同步和异步,是操作系统的上机题」· C语言 代码 · 共 48 行

C
48
字号
#include <stdio.h> #include <sys/types.h>#include <sys/msg.h>#include <sys/ipc.h>#define MSGKEY 75struct msgbuf {                 long mtype;     /* message type, must be > 0 */                 char mtext[100];  /* message data */            }msg;int qid;void server(){	qid=msgget(MSGKEY,0777|IPC_CREAT);	do{	msgrcv(qid,&msg,100,0,0);	printf("server receive\n");	}while(msg.mtype!=1);	 msgctl(qid, IPC_RMID,0);   	exit(0);} void client( ){	int i;	do{	qid=msgget(MSGKEY,0777);	}while(qid==-1);		for(i=10;i>=1;i--)	{		 msg.mtype=i;		 printf("client sent\n"); 		 msgsnd(qid,&msg,99,0);       /*发送消息msg入msgid消息队列*/	}	exit(0);}int main(){	//printf("%d  %d",IPC_NOWAIT, MSG_NOERROR);	if(fork()) server();	else client( ); 	wait(0);	wait(0);	exit(0);	return 1;}

⌨️ 快捷键说明

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