shm.c
来自「linux中设计简单的客户端和服务器端,是操作系统的上机题」· C语言 代码 · 共 48 行
C
48 行
#include<sys/types.h>#include<sys/msg.h>#include<sys/ipc.h>#define SHMKEY 75 /*定义共享区关键词*/int shmid,i;int *addr; CLIENT(){ int i; do{ shmid=shmget(SHMKEY,100,0777); } while(shmid==-1); printf("client get shmid=%d\n",shmid); addr=shmat(shmid,0,0); /*共享区起始地址为addr*/ for(i=9;i>=0;i--) { while(*addr!= -1); printf("(client)sent\n"); /*打印(client)sent*/ *addr=i; /*把i赋给addr*/ } exit(0);} SERVER(){ shmid=shmget(SHMKEY,100,0777|IPC_CREAT); /*创建共享区*/ printf("server creat shmid=%d\n",shmid); addr=shmat(shmid,0,0); /*共享区起始地址为addr*/ do { *addr=-1; while(*addr==-1); printf("(server)received\n"); /*服务进程使用共享区*/ } while(*addr); shmctl(shmid,IPC_RMID,0); exit(0); } main(){ if(fork())SERVER(); else CLIENT(); wait(0); wait(0);}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?