- 论坛徽章:
- 0
|
#include<apue.h>
#include<unistd.h>
#include<stdlib.h>
#include<setjmp.h>
int glob=6;
char buf[]="a write to stdout\n";
int main()
{
int var;
pid_t pid;
var=88;
if(write(STDOUT_FILENO,buf,sizeof(buf))!=sizeof(buf))
err_sys("write error!");
printf("before fork \n");
if((pid=fork())<0)
{
err_sys("fork error\n");
}
else if(pid==0)
{
glob++;
var++;
}
else
{sleep(2);
}
printf("pid=%d,glob=%d,var=%d\n",getpid(),glob,var);
printf("address glob=%d,address var=%d\n",&glob,&var);
return 0;
}
|
fork 后子进程获得了父进程的变量的拷贝,但是这两个进程的变量 地址是一样的,值确不一样,为什么,子进程的变量又存放在哪里 |
|