Windows 编程中的_spawnl(...)和Createprocess(...) API 有什么区别?
这些 API 在创建流程行为方面有何不同。
CreateProcess
是用于创建进程的原生 API。
spawnl
是 C 运行时的一部分,具有类似 POSIX 的语义。它仅支持一小部分功能(提供命令行参数),并作为CreateProcess
. 同时,spawnl
已被弃用,取而代之的是_spawnl
.
的自然操作模式与 的模式CreateProcess
相当,但具有附加功能(环境、标准句柄安全信息……)。 P_NOWAIT
spawnl
请注意,P_OVERLAY
模式 inspawnl
根本不是 Windows 下直接支持的(没有类 Unix fork
+execve
习惯用法,进程是重新创建的,而不是分叉的)。因此,此功能是通过生成新进程并终止原始进程来实现的,而不是通过替换进程来实现。