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

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

最佳答案

CreateProcess是用于创建进程的 native API。
spawnl是C运行时的一部分,具有类似POSIX的语义。它仅支持功能的一小部分(提供命令行参数),并实现为CreateProcess的包装器。同时,不建议使用spawnl,而建议使用_spawnl
CreateProcess的自然操作模式与P_NOWAITspawnl模式相当,但具有其他功能(环境,标准处理安全信息等)。

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

关于windows - Windows编程中_spawnl和Createprocess(…)API有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17911785/

10-17 02:10