-3
當使用CreateProcess運行另一個程序時,推薦採用stdout的方式是什麼?也就是說,要將第二個程序打印到stdout中的任何內容,並將其放入第一個程序可以分析它的數組中?CreateProcess並捕獲標準輸出
這兩個程序都是用C編寫的直寫Win32程序,沒有花哨的東西。
當使用CreateProcess運行另一個程序時,推薦採用stdout的方式是什麼?也就是說,要將第二個程序打印到stdout中的任何內容,並將其放入第一個程序可以分析它的數組中?CreateProcess並捕獲標準輸出
這兩個程序都是用C編寫的直寫Win32程序,沒有花哨的東西。
簡短的回答是創建匿名管,相應地設置STARTUPINFO
結構的hStdOut
/hStdErr
和dwFlag
成員,並且具有CreateProcess()
繼承用於管道的書寫端的手柄。不要忘記關閉管道的書寫手柄,然後您可以從循環讀取管道的讀取手柄,直到失敗,並出現ERROR_BROKEN_PIPE
錯誤。
MSDN爲此提供了一個詳細的例子:
Creating a Child Process with Redirected Input and Output
你是不是這樣做的第一人,應該有大量的示例代碼和StackOverflow上這裏重複的問題。