进程间通过共享内存通信

来源:互联网 发布:javascript的oop写法 编辑:程序博客网 时间:2024/06/05 08:03

server.c

 

/* * ===================================================================================== * *       Filename:  proc.c * *    Description:   * *        Version:  1.0 *        Created:  2012年03月09日 20时27分27秒 *       Revision:  none *       Compiler:  gcc * *         Author:  MaZheng (blog.csdn.net/mazheng1989), mazheng19891019@gmail.com *        Company:  Dalian University Of Technology * * ===================================================================================== */#include<stdlib.h>#include<unistd.h>#include<sys/types.h>#include<sys/shm.h>#include<sys/ipc.h>#include<stdio.h>#define BUF_SIZE 27/*  */#define MYKEY 6789/*  */int main(void){int shmid;char *shmptr;if((shmid=shmget(MYKEY,BUF_SIZE,IPC_CREAT|0666))<0){printf("shmget error!\n");exit(1);}printf("shmid %d\n",shmid);if((shmptr=shmat(shmid,NULL,0))<(void *)(0)){fprintf(stderr,"shmat error!\n");exit(1);}int count=0;printf("%u\n",&shmptr);while(1){printf("%s\n",shmptr);sleep(3);}exit(0);


client.c

/* * ===================================================================================== * *       Filename:  proc2.c * *    Description:   * *        Version:  1.0 *        Created:  2012年03月09日 20时46分12秒 *       Revision:  none *       Compiler:  gcc * *         Author:  MaZheng (blog.csdn.net/mazheng1989), mazheng19891019@gmail.com *        Company:  Dalian University Of Technology * * ===================================================================================== */#include<sys/types.h>#include<stdlib.h>#include<sys/ipc.h>#include<sys/shm.h>#include<stdio.h>#defineBUF_SIZE 27/*  */#defineMYKEY 6789/*  */int main(void){int shmid;char *shmptr;if((shmid=shmget(MYKEY,BUF_SIZE,0666))<0){printf("shmget error!\n");exit(1);}printf("shmid %d\n",shmid);if((shmptr=shmat(shmid,NULL,0))==(void *)(-1)){fprintf(stderr,"shmat error!\n");exit(1);}printf("%u\n",&shmptr);while(1){scanf("%s\n",shmptr);}printf("%s\n",shmptr);exit(0);


原创粉丝点击