Windows父和子进程创建

时间:2013-01-18 10:53:47

标签: c++ windows

我想在Windows中使用C ++创建5个子进程。但我很困惑CreateProcess要求lpApplicationName而不是fork,我可以在其中弄清楚我是小孩还是父母。如何在Windows中执行此操作

2 个答案:

答案 0 :(得分:2)

不幸的是,CreateProcess函数只能用于加载程序并为该程序启动一个新进程。

然而,您可以使用CreateProcess来模拟fork功能,方法是让它加载您正在运行的程序,然后让它跳转到正确的位置。这是由this old answer引用的Cygwin所做的(或者至少是)。

答案 1 :(得分:0)

在Windows中通常最好使用线程而不是多个进程,因为Windows中的进程比UNIX中的对象要重得多。

但是,您可以通过将应用程序的名称和路径传递给CreateProcess(如果您还不知道它使用GetModuleFileName)并包含一个命令行参数来告诉您的应用程序它是作为儿童过程启动。

请记住,子进程将从头开始,如果您使用fork,它们将没有父进程内存的副本。