父子进程的共享资源
Posted --lr
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了父子进程的共享资源相关的知识,希望对你有一定的参考价值。
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <unistd.h> 4 int global = 1;/*初始化的全局变量,存在data段*/ 5 6 int main(void) 7 8 pid_t pid;/*存储进程id*/ 9 int stack = 1;/*局部变量,存在栈中*/ 10 int *heap;/*指向堆变量的指针*/ 11 heap = (int*)malloc(sizeof(int)); 12 *heap = 3;/*设置堆中的值是3*/ 13 pid = fork();/*创建一个新线程*/ 14 if(pid < 0) 15 perror("fail to fock!\n"); 16 exit(-1); 17 18 else if(pid == 0) 19 /*子进程,改变变量的值*/ 20 global++; 21 stack++; 22 (*heap)++; 23 /*打印出变量的值*/ 24 printf("In Sub-process,global: %d,stack: %d,heap: %d\n",global,stack,*heap); 25 exit(0); 26 27 else 28 /*父进程*/ 29 sleep(2);/*休眠2秒钟,确保子进程执行完毕,在执行父进程*/ 30 printf("In Parent,global: %d,stack: %d,heap: %d\n",global,stack,*heap); 31 32 return 0; 33
以上是关于父子进程的共享资源的主要内容,如果未能解决你的问题,请参考以下文章