基础就是理解fork函数
#include<stdio.h>
#include<unistd.h>
int gval = 10;
int main()
{
pid_t pid;
int lval = 20;
gval++, lval+=5;
pid = fork();
if(pid==0){
gval+=2, lval+=2; // child process
}
else{
gval-=2, lval-=2; // parent proces
}
if(pid==0){
printf("Child Proc: [%d %d] \n",gval, lval);
}
else{
printf("Parent Proc: [%d %d] \n",gval,lval);
}
return 0;
}
gval是一个全局变量
lval是一个局部变量
gval=11, lval = 25
创建进程的时候,会把所有资源都复制一份,此时全局变量之间也是独立的。
复制一份进程出来
对于子进程 gavl = 13, lval = 27
对于父进程gval = 9, lval = 23