从另一个执行并捕获一个程序

在win32编程C:

什么是在另一个win32程序中执行win32控制台程序的最佳方法,并让程序启动执行捕获输出? 目前,我把程序redirect输出到一个文件,但我相信我必须能够打开某种pipe道?

使用CreateProcess Win32 API来启动子进程。

传递给它一个带有hStdInputhStdOutputhStdError句柄的STARTUPINFO结构,将其设置为你打开的文件句柄(真实文件或内存映射文件应该工作)。 你不需要指定全部三个,你可以只重定向你真正需要的那些; 最常见的情况是hStdOutput

如果你想和子进程通信(通过hStdInput ),你需要等待它通过调用WaitForInputIdle来初始化。