2017-02-22 130 views
-3

当使用CreateProcess运行另一个程序时,推荐采用stdout的方式是什么?也就是说,要将第二个程序打印到stdout中的任何内容,并将其放入第一个程序可以分析它的数组中?CreateProcess并捕获标准输出

这两个程序都是用C编写的直写Win32程序,没有花哨的东西。

回答

1

简短的回答是创建匿名管,相应地设置STARTUPINFO结构的hStdOut/hStdErrdwFlag成员,并且具有CreateProcess()继承用于管道的书写端的手柄。不要忘记关闭管道的书写手柄,然后您可以从循环读取管道的读取手柄,直到失败,并出现ERROR_BROKEN_PIPE错误。

MSDN为此提供了一个详细的例子:

Creating a Child Process with Redirected Input and Output

你是不是这样做的第一人,应该有大量的示例代码和StackOverflow上这里重复的问题。

相关问题