【发布时间】:2021-12-13 13:52:51
【问题描述】:
在Linux上,我必须在父进程上的fork()之后调用wait(),否则子进程在完成后将保持僵尸状态,直到父进程完成。
我想知道我是否必须在 Windows 上遵循类似的步骤,
即我是否必须在拨打WaitForSingleObject()之后拨打CreateProcess()。
我知道 Windows 的 CreateProcess() 与 Linux 的 fork() 不同,而且似乎“僵尸”是 Windows 上不存在的 UNIX/Linux 概念。但也许我仍然必须调用WaitForSingleObject() 来释放分配给CreateProcess() 的一些操作系统资源,类似于Linux 的情况。
【问题讨论】:
-
更等效的 Windows C 调用将是
_beginthread()。CreateProcess()启动一个独立的进程。 -
来自
CreateProcess()的新窗口进程有自己的生命。父进程如果想监控子生命,可以调用WaitForSingleObject()。 -
不,你不能等待
-
fork() 也创建了一个单独的进程
-
@Alexander - 我不知道这里需要哪个参考。但在 indows 进程中独立于它的父进程。如果愿意,您可以等待,但不能等待。
标签: c linux windows operating-system