Windows编程中 _spawnl(...)和 Createprocess(...) API有什么区别?
这些API在创建流程行为方面有何不同。
答案 0 :(得分:6)
CreateProcess
是用于创建流程的本机API。
spawnl
是C运行时的一部分,具有类似POSIX的语义。它仅支持一小部分功能(提供命令行参数),并作为CreateProcess
的包装器实现。与此同时,spawnl
已弃用_spawnl
。
CreateProcess
的自然操作模式与P_NOWAIT
的{{1}}模式相当,但具有其他功能(环境,标准处理安全信息,......)。
请注意,spawnl
中的P_OVERLAY
模式根本不是Windows下直接支持的模式(没有类似Unix的spawnl
+ fork
个惯用法,是重新创建的,而不是分叉的)。因此,通过生成新流程并终止原始流程而不是通过替换流程来实现此功能。