將stdout stderr匯入到指定檔案

2021-08-25 10:45:39 字數 1174 閱讀 9244

在編寫程式中,經常用到stdout、stderr作為輸出,通常stdout用於輸出程式執行正常時的資訊,stderr用於輸出程式出錯時的資訊。我們可以通過一些命令將stdout、stderr在螢幕上的輸出匯入到指定的檔案。

1、準備工作

帶有stdout、stderr輸出的test.cpp

/* ** test.cpp

*/#include

#include

using namespace std;

int main(int argc, char *argv)

用g++編譯該檔案:

$ g++ test.cpp -o test

執行 test ,螢幕上列印stdout、stderr的資訊

this is stdout....

this is stderr...

2、匯入stdout的結果到指定檔案

在csh、sh下,使用」>」將stdout的結果匯入到指定檔案,本例中執行

./test > out.log

檢視out.log,可以看到裡面寫有「this is stdout....」。

使用」>>」將stdout的結果追加到指定檔案中,本例中執行

./test >> out.log

檢視out.log,可以看到增加了一行「this is stdout....」。

3、匯入stderr到指定檔案

在 csh 中,用 ">" 將 stdout 導向,用 ">&" 則能將 stdout 與 stderr 一起導向。可是不能只單獨把 stderr 轉向。最好的方法是

(./test > out.log) >& err.log

以上的命令會開乙個 subshell 執行 "./test";而這個 subshell 的 stdout 則被轉向到out.log,同時這個 subshell 的 stdout 和 stderr 則都被轉向到 err.log,但是因為 stdout 已經先被轉向了, 所以 stderr 就會被轉到 err.log 了。

如果你只是單純的不想把 stdout 做轉向,那麼就用 sh 來幫你吧。

sh -c './test 2> err.log'

如果同時需要得到stdout、stderr的資訊,也很簡單,直接使用》&就可以了。

./test >& err.log(王朝網路 wangchao.net.cn)

控制台重定向stdout stderr

通常,乙個控制台 命令提示符 應用程式或命令的輸出將傳送到兩個單獨的流.常規的輸出傳送到標準出 stdout 並將錯誤訊息傳送到標準錯誤 stderr 當你重定向控制台輸出使用 符號,只重定向標準輸出.要重定向stderr,必須指定 2 的重定向符號.這將選擇第二個輸出流stderr。kill hu...

將Excel資料匯入MySql

將excel資料匯入mysql 1.將選中的資料快兒拷貝到乙個txt文字檔案中 記得把後面的空格消掉。假如存到 d data.txt 這個位置裡。2.根據要匯入的資料快兒建立mysql資料庫和表,然後進入命令提示符裡使用命令 load data local infile d data.txt int...

將Excel資料匯入MySql

1.將選中的資料快兒拷貝到乙個txt文字檔案中 記得把後面的空格消掉。否則匯入資料庫後會有對應的空行 假如存到 d data.txt 這個位置裡。2.根據要匯入的資料快兒建立mysql資料庫和表,然後進入命令提示符裡使用命令 load data local infile d data.txt int...