我有一个程序(我们称之为 prog1.exe)启动另一个程序(我们称之为 prog2.exe):
// in prog1.exe:
boost::process::spawn("prog2.exe", ...);
如果我启动 cmd.exe:
C:\>
然后运行 prog1.exe:
C:\> prog1.exe
然后:
- prog1.exe 开始运行
- prog1.exe 启动 prog2.exe 并且 prog2.exe 开始运行
- prog1.exe 成功完成。
- prog2.exe 继续运行。
如果我在 prog2.exe 仍在运行时关闭 cmd.exe,它将在 prog2.exe 完成之前终止它。
为什么会这样?为什么 prog1.exe 结尾不会终止 prog2.exe,而 cmd.exe 结尾不会终止 prog2.exe ?
有什么办法可以使关闭 cmd.exe 不会终止 prog2.exe?