我很困惑.我已经读过,当父进程创建子进程时,
child获取其父级地址空间的副本.复制意味着什么?
如果我使用下面的代码,那么它会打印相同的变量’a’的地址
案例.即在儿童和父母的情况下.那么这里发生了什么?
int main () { pid_t pid; int *a = (int *)malloc(4); printf ("heap pointer %p\n",a); pid = fork(); if (pid < 0) { fprintf (stderr,"Fork Failed"); exit(-1); } else if (pid == 0) { printf ("Child\n"); printf ("in child heap pointer %p\n",a); } else {
wait (NULL); printf ("Child Complete\n"); printf ("in parent heap pointer %p\n",a); exit(0); }
}
最佳答案