возвращаемое значение в системном вызове vfork ()

Учитывая приведенный ниже код:

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 () ?

6
задан L.ppt 19 February 2012 в 08:59
поделиться