2017-02-22 60 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上這裏重複的問題。

相關問題