使用 CreateprocessA/W 时是否使用 system() 函数?

Gil*_*Raz 0 c windows winapi

我想知道,当使用命令行参数并且留下第一个参数时,函数CreateprocessA()CreateprocessW() 使用或调用system()还是它的变体NULL

编辑: 否则,他们会调用 CMD.EXE 作为中介吗?

Som*_*ude 6

不。

这可能是相反的方式,system在 Windows 上是使用CreateProcess(或ShellExecute,而这又可能使用CreateProcess)来实现的。

  • `system` 调用 `CreateProcessA` (多字节),`_wsystem` 调用 `CreateProcessW`(宽字符),但两者都执行一个命令行,该命令行运行 `%ComSpec%` shell,并使用 `/c` 选项来运行命令,而这个 shell 几乎都是 cmd.exe。此外,如果调用“CreateProcess”来执行 .bat 或 .cmd 文件,它会重写命令行以通过带有“/c”的“%ComSpec%” shell 执行。 (3认同)