windows编程中_spawnl和Createprocess(...)API有什么区别?

时间:2013-07-28 19:04:50

标签: windows winapi

Windows编程中 _spawnl(...) Createprocess(...) API有什么区别?

这些API在创建流程行为方面有何不同。

1 个答案:

答案 0 :(得分:6)

CreateProcess是用于创建流程的本机API。

spawnl是C运行时的一部分,具有类似POSIX的语义。它仅支持一小部分功能(提供命令行参数),并作为CreateProcess的包装器实现。与此同时,spawnl已弃用_spawnl

CreateProcess的自然操作模式与P_NOWAIT的{​​{1}}模式相当,但具有其他功能(环境,标准处理安全信息,......)。

请注意,spawnl中的P_OVERLAY模式根本不是Windows下直接支持的模式(没有类似Unix的spawnl + fork个惯用法,是重新创建的,而不是分叉的)。因此,通过生成新流程并终止原始流程而不是通过替换流程来实现此功能。