Учитывая приведенный ниже код:
int main()
{
int pid;
pid=vfork();
if(pid==0)
printf("child\n");
else
printf("parent\n");
return 0;
}
В случае vfork () адресное пространство, используемое родительским и дочерним процессами, одинаково , поэтому должна быть одна копия переменной pid. Теперь я не могу понять, как эта переменная pid может иметь два значения, возвращаемых vfork () , т.е. ноль для дочернего элемента и ненулевое значение для родительского?
В случае fork () адрес пространство также копируется, и есть две копии переменной pid в каждом дочернем и родительском элементах, поэтому я могу понять, что в этом случае две разные копии могут иметь разные значения, возвращаемые fork () , но не могу понять в случае of vfork () как pid имеет два значения, возвращаемых vfork () ?