【发布时间】:2011-10-24 11:56:11
【问题描述】:
我尝试使用 CreateProcess 来运行像 hg > test.txt 这样的简单命令。我尝试将字符串作为一个整体运行(而不是将其分成应用程序名称及其参数)。为什么CreateProcess(0, "notepad.exe test.txt", ...) 有效而CreateProcess(0, "hg > test.txt", ...) 无效?
【问题讨论】:
-
CreateProcess不知道重定向。为什么不使用system(3)?让我猜猜:你可以比 system(3) 做得更好。 -
@Seth Carnegie 手册部分。
man 3 system. -
man 3 systemfor Windows?? -
@cnicutar 他绝对可以比系统(在 Windows 上)做得更好。系统会启动cmd.exe,加载各种依赖,导致各种不必要的事情发生。
-
@cnicutar:实际上,
CreateProcess()有一个lpStartupInfo结构,它接受重定向流的句柄,所以它确实知道重定向。它只是不使用 shell 表示法。
标签: c++ c winapi io-redirection