我想在Windows中使用C ++创建5个子进程。但我很困惑CreateProcess
要求lpApplicationName
而不是fork
,我可以在其中弄清楚我是小孩还是父母。如何在Windows中执行此操作
答案 0 :(得分:2)
不幸的是,CreateProcess
函数只能用于加载程序并为该程序启动一个新进程。
然而,您可以使用CreateProcess
来模拟fork
功能,方法是让它加载您正在运行的程序,然后让它跳转到正确的位置。这是由this old answer引用的Cygwin所做的(或者至少是)。
答案 1 :(得分:0)
在Windows中通常最好使用线程而不是多个进程,因为Windows中的进程比UNIX中的对象要重得多。
但是,您可以通过将应用程序的名称和路径传递给CreateProcess(如果您还不知道它使用GetModuleFileName)并包含一个命令行参数来告诉您的应用程序它是作为儿童过程启动。
请记住,子进程将从头开始,如果您使用fork,它们将没有父进程内存的副本。