以下のコードを考慮してください:
int main()
{
int pid;
pid=vfork();
if(pid==0)
printf("child\n");
else
printf("parent\n");
return 0;
}
vfork()の場合、親プロセスと子プロセスが使用するアドレス空間は同じであるため、変数 pid の単一のコピーがそこにあるはずです。この pid 変数がvfork()によって返される 2 つの値を持つ方法を理解できません。
fork()の場合、アドレス空間もコピーされ、各子と親に pid 変数の 2 つのコピーがあるため、この場合、2 つの異なるコピーがfork()によって異なる値を返す可能性があることは理解できますが、理解できません。 vfork()の場合、どのように pid がvfork()によって返される 2 つの値を持ちますか?