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...