如何使用 vfork 创建多个进程



这是vfork()的程序。该程序创建多个父进程和子进程,并在末尾返回 -1(表示操作系统无法创建另一个进程)。为什么会发生这种行为?

#include<stdio.h>
void main()
{
  int pid;
  pid=vfork();
  printf("pid=%dn",pid);
  if(pid==0)
  {
    printf("hellon");
  }
}

(1) 这将创建一个孩子。

(2) 使用vfork子项与父项共享内存,直到调用exec_exit。 你叫都不。

(3)父母的执行暂停,直到孩子打电话exec_exit

所以基本上你的例子是 FUBAR。 vfork的要点(如果现在真的有的话)是提供一个快速fork机制,该机制将立即exec另一个程序。 随着常规fork的写入时复制行为,对此的需求大大减少。

相关内容

  • 没有找到相关文章