父进程利用fork()函数创建子进程并且利用shared_memory进行通信的实例
2017-11-17 20:20
411 查看
#include<stdio.h> #include<unistd.h> #include<sys/shm.h> #include<sys/stat.h> #define Maxsize 10 typedef struct { int a[Maxsize]; int length; }A; int main() { int segment_id,fp; A* shared_mem; segment_id=shmget(IPC_PRIVATE,sizeof(A),S_IRUSR|S_IWUSR); fp=fork(); if(fp==0)//说明是子进程 { printf("i am son!\n"); shared_mem=(A *)shmat(segment_id,NULL,0); shared_mem->a[0]=4; shared_mem->a[1]=1; shared_mem->length=2; shmdt(shared_mem); } else if(fp>0) { printf("i am father\n"); for(int i=0;i<2;i++) { wait(NULL); shared_mem=(A *)shmat(segment_id,NULL,0); printf("1 %d 2 %d",shared_mem->a[0],shared_mem->a[1]); printf("length is %d",shared_mem->length); shmdt(shared_mem); shmctl(segment_id,IPC_RMID,NULL); exit(0); } } }
相关文章推荐
- 进程间通信---在父进程跟子进程之间利用管道进行通信。一个简单的例子
- fork创建子进程利用pipe管道通信
- wait函数在fork创建子进程后的使用
- 编写一个程序,使用fork函数来创建一个子进程,并且说明父进程和子进程的随机返回问题
- wait函数在fork创建子进程后的使用
- 计算机图形学-实验3-掌握利用OpenGL函数进行鼠标、键盘操作,创建菜单
- 使用C语言的fork()函数在Linux中创建进程的实例讲解
- fork创建子进程和父进程
- 利用C#进行Socket通信编程之二:一个实例
- Linux下利用fork()创建子进程并使父进程等待子进程结束
- Linux多进程——利用fork()函数进行多进程编程
- wait函数在fork创建子进程后的使用
- 【Linux网络编程实例】实例二:利用TCP协议进行客户端与服务器通信
- fork()函数-创建子进程
- 《深入理解计算机系统》第八章 (一)关于子进程创建函数fork的理解
- wait函数在fork创建子进程后的使用
- Linux中使用C语言的fork()函数创建子进程的实例教程
- java netty socket库和自定义C#socket库利用protobuf进行通信完整实例
- JavaScript面向对象实例——创建日志调试对象来代替alert函数进行调试
- JavaScript面向对象实例——创建日志调试对象来代替alert函数进行调试