Windows编程中 _spawnl(...)和 Createprocess(...) API有什么区别?
这些API在创建过程行为方面有何不同。
最佳答案
CreateProcess
是用于创建进程的 native API。spawnl
是C运行时的一部分,具有类似POSIX的语义。它仅支持功能的一小部分(提供命令行参数),并实现为CreateProcess
的包装器。同时,不建议使用spawnl
,而建议使用_spawnl
。CreateProcess
的自然操作模式与P_NOWAIT
的spawnl
模式相当,但具有其他功能(环境,标准处理安全信息等)。
请注意,Windows根本不直接支持P_OVERLAY
中的spawnl
模式(没有类似Unix的fork
+ execve
惯用语,进程是重新创建的,而不是 fork 的)。因此,通过产生一个新进程并终止原始进程来实现此功能,而不是通过替换该进程来实现。
关于windows - Windows编程中_spawnl和Createprocess(…)API有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17911785/