signalcs1.c
来自「操作系统的一些实验」· C语言 代码 · 共 54 行
C
54 行
#include<stdio.h>
#include<sys/types.h>
#include<sys/msg.h>
#include<sys/ipc.h>
#define MSGKEY 75
struct msgform
{
long mtype;
char mtext[1030];
}msg;
int msgpid,i;
void CLIENT()
{
int i;
msgpid=msgget(MSGKEY,0777);
for(i=10; i>=1; i--)
{
msg.mtype=i;
printf("(client)sent\n");
msgsnd(msgpid,&msg,1024,0);
}
exit(0);
}
void SERVER()
{
msgpid=msgget(MSGKEY,0777|IPC_CREAT);
do {
msgrcv(msgpid,&msg,1030,0,0);
printf("(server)received\n");
}while(msg.mtype !=1);
msgctl(msgpid,IPC_RMID,0);
exit(0);
}
int main()
{
while((i=fork())==-1);
printf("server created successful! ");
if(!i) SERVER();
while((i=fork())==-1);
printf("client created successful!\n");
if(!i) CLIENT();
wait(0);
wait(0);
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?