- 論壇徽章:
- 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 后子進程獲得了父進程的變量的拷貝,但是這兩個進程的變量 地址是一樣的,值確不一樣,為什么,子進程的變量又存放在哪里 |
|