-1

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

4

2 回答 2

2

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

但是,您可以使用它CreateProcess来模拟fork功能,方法是要求它加载您已经运行的程序,然后要求它跳转到正确的位置。这就是 Cygwin 所做的(或至少是),正如这个旧答案所引用的那样。

于 2013-01-18T11:02:06.920 回答
0

在 Windows 中使用线程而不是多进程通常更可取,因为进程在 Windows 中比在 UNIX 中重得多。

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

请记住,子进程将从头开始,它们不会像使用 fork 时那样拥有父内存的副本。

于 2013-01-20T20:56:44.213 回答