在編寫程式中,經常用到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...