herror

herror()函式用於列印錯誤信息。

基本信息

說明

在使用 gethostbyname() 的時候,你不能用perror() 列印錯誤信息(因為 errno 沒有使用),你應該調用 herror()。

Linux下的 herror(3)函式

內容簡介

包含頭檔案 #include <netdb.h>

函式定義 void herror( const char *s );

函式功能 程式的部分函式運行出錯時,先列印出自定義的文字說明字元串 *s ,然後列印出相關錯誤代碼的文字說明。

注意事項 請注意 herror() 與perror() 的區別

與其它相似的函式的區別與聯繫

與 perror(3) 的區別:

perror()函式的定義包含於頭檔案 #include <stdio.h> 一般應與 #include <errno.h> 配合使用

herror()函式的定義包含於頭檔案 #include <netdb.h> 一般服務於該頭檔案的函式,如 gethostbyname(3) 、gethostbyaddr(3) 等等。

程式例子(C語言)

/* ********************************************

* 編譯:保存為檔案 test.c ,在Linux

* 的此檔案所在目錄下輸入命令

* gcc test.c -o test

* (運行)./test

* 程式輸出:Can't get IP address: Unknown host

* 錯誤原因:代碼中指代域名的參數 hostname 是一個空字元串 '\0' ;

********************************************* */

#include <netdb.h>

#define NULL (void *)0

int main( int argc, char *argv[ ] )

{

char *hostname = "" ; //申明需要解析的域名地址(不含http://),為了輸出錯誤,這裡賦值為空

struct hostent *hent; //存儲函式gethostbyname(3)的返回值

if ( (hent = gethostbyname(hostname)) == NULL )

{
herror("Can't get IP address"); // herror(3)在這裡被使用

return -1;
};

return 0;

}

/* **************************** END OF TEST.C ***************************************** */

相關詞條

相關搜尋

熱門詞條

聯絡我們