Ads 468x60px

##EasyReadMore##

27 5月, 2015

為何要使用 stderr 來輸出錯誤訊息

除錯時會用 fprintf(stderr,"the boy is %d years old\n",year);
但為何不直接用 printf("the girl is %d years old\n",year);
因為使用 stderr 所印在螢幕上的東西不會被輸出轉向所影響
程式有兩行輸出
#include <stdio.h>
int main()
{
    int year = 9;
    fprintf(stderr,"the boy is %d years old\n",year);
    printf("the girl is %d years old\n",year);

    return 0;
}


./main > test.txt //執行程式將輸出結果導出到 test.txt 檔
the boy is 9 years old  //導出過程會出現 stderr 的訊息,不會被導入 test.txt
cat test.txt  //查看 test.txt 內容
the girl is 9 years old //為printf 輸出的內容,無 stderr 的內容
結論:
使用 stderr 應該是為了使輸出的結果不包含偵錯訊息

0 意見:

張貼留言

 
Blogger Templates