temp2.c

来自「本代码是linux消息机制部分的示例」· C语言 代码 · 共 49 行

C
49
字号
#include <stdlib.h>#include <stdio.h>#include <string.h>#include <errno.h>#include <unistd.h>#include <sys/stat.h>#include <sys/types.h>#include <sys/ipc.h>#include <sys/shm.h>#define PERM S_IRUSR|S_IWUSR/* 共享内存 */int main(int argc,char **argv) { 	int shmid; 	char *p_addr,*c_addr; 		if(argc!=2) 	{ 		fprintf(stderr,"Usage:%s\n\a",argv[0]); 		exit(1); 	}	/* 创建信号量 */		if((shmid=shmget(IPC_PRIVATE,1024,PERM))==-1) 	{ 		fprintf(stderr,"Create Share Memory Error:%s\n\a",strerror(errno)); 		exit(1); 	} 	/* 创建子进程 */	if(fork()) // 父进程写	{ 		p_addr=shmat(shmid,0,0); 		memset(p_addr,'\0',1024); 		strncpy(p_addr,argv[1],1024);		wait(NULL); // 释放资源,不关心终止状态		exit(0); 	} 	else       // 子进程读	{ 		sleep(1); // 暂停1秒				c_addr=shmat(shmid,0,0); 		printf("Client get %s\n",c_addr); 		exit(0); 	} } 

⌨️ 快捷键说明

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