signalcs2.c
来自「操作系统的一些实验」· C语言 代码 · 共 50 行
C
50 行
#include<sys/types.h>
#include<sys/msg.h>
#include<sys/ipc.h>
#define SHMKEY 75
int shmid,i;
int *addr;
void CLIENT()
{
int i;
shmid=shmget(SHMKEY,1024,0777);
addr=shmat(shmid,0,0);
for(i=9; i>=0; i--)
{
while(*addr !=-1);
printf("(client) sent\n");
*addr=i;
}
exit(0);
}
void SERVER()
{
shmid=shmget(SHMKEY,1024,0777|IPC_CREAT);
addr=shmat(shmid,0,0);
do{
*addr=-1;
while(*addr==-1);
printf("(server) received\n");
}while(*addr);
shmctl(shmid,IPC_RMID,0);
exit(0);
}
int main()
{
while((i=fork())==-1);
if(!i) SERVER();
while((i=fork())==-1);
if(!i) CLIENT();
wait(0);
wait(0);
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?