父子进程的共享资源

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 

 

以上是关于父子进程的共享资源的主要内容,如果未能解决你的问题,请参考以下文章

父子进程的共享资源

父子进程共享内存通信的三种方法

(待续)进程控制---父子进程之间的复制

Posix共享内存

子进程

Linux fork操作之后发生了什么?