Я в замешательстве. Я читал, что когда ребенок создается родительским процессом,
child получает копию адресного пространства своего родителя. Что это значит здесь под копией?
Если я использую код ниже, то он печатает те же адреса переменной «а», которая находится во всех
случаев. т.е. в случае ребенка и родителя. Так что здесь происходит?
</p>
<p>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 {</p>
<code> wait (NULL);
printf ("Child Complete\n");
printf ("in parent heap pointer %p\n", a);
exit(0);
}
</code>
}