popen 重定向標準錯誤輸出到管道流的方法

2021-06-03 16:17:58 字數 365 閱讀 2128

file *popen(const char *command, const char *type);

當使用type 引數為 「r" 時,popen 會把執行 command 後的標準輸出重定向到管道流。但是,command執行中的標準錯誤輸出,在管道流中得不到。

那麼,有沒有辦法來同時獲取到 command 執行後的標準輸出和標準錯誤輸出呢?答案是肯定的!

只要在 command 中,將標準錯誤輸出重定向到標準輸出即可!

例如:file *stream;

stream = popen(, "cp -f 2>&1", "r");

while(fgets(s, 1024, stream))

printf(s);

重定向標準錯誤輸出

第5章介紹了標準輸出的概念,並解釋了如何重定向命令的標準輸出。除了標準輸出之外,命令還可以將輸出傳送到標準錯誤輸出。命令將錯誤訊息傳送到標準錯誤輸出,這樣就可以避免與傳送到標準輸出的資訊混淆在一起。與處理標準輸出一樣,預設情況下,shell將命令的標準錯誤輸出傳送到螢幕上。除非重定向標準輸出和標準錯...

重定向標準錯誤輸出

8.2.3 重定向標準錯誤輸出 第5章介紹了標準輸出的概念,並解釋了如何重定向命令的標準輸出。除了標準輸出之外,命令還可以將輸出傳送到標準錯誤輸出。命令將錯誤訊息傳送到標準錯誤輸出,這樣就可以避免與傳送到標準輸出的資訊混淆在一起。與處理標準輸出一樣,預設情況下,shell將命令的標準錯誤輸出傳送到螢...

標準輸出 標準錯誤重定向(格式)

command filename 把把標準輸出重定向到乙個新檔案中 command filename 把把標準輸出重定向到乙個檔案中 追加 command 1 fielname 把把標準輸出重定向到乙個檔案中 command filename 2 1 把把標準輸出和標準錯誤一起重定向到乙個檔案中 c...