天天看點

錯誤輸出

1、void perror(const char *s); perror ("open_port");

#include <stdio.h>

perror ( )用來将上一個函數發生錯誤的原因輸出到标準裝置(stderr)。參數 s 所指的字元串會先列印出,後面再加上錯誤原因字元串。此錯誤原因依照全局變量error的值來決定要輸出的字元串。

2、char * strerror(int errnum);

#include <string.h>

此函數将errnum(它通常就說errno值)映射為一個出錯資訊字元串,并傳回此字元串的指針。

3、差別

perror是将errno對應的錯誤消息的字元串列印到标準錯誤輸出上,即stderr或2上,若你的程式将标準錯誤輸出重定向到/dev/null,那就看不到了,就不能用perror了。而 strerror的作用隻是将errno對應的錯誤消息字元串傳回,要怎樣處理完全由你自己決定。通常我們選擇把錯誤消息儲存到日志檔案中,即寫檔案,是以通常可以用fprintf(fp, "%s", strerror(errno))将錯誤消息列印到fp指向的檔案中。其中perror中errno對應的錯誤消息集合跟strerror是一樣的,也就是說不會漏掉某些錯誤。

原文

http://www.cnblogs.com/zjfdbz/archive/2012/12/16/2821061.html

上一篇: 記憶體監控
下一篇: sysctl簡介

繼續閱讀