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 + -
显示快捷键?