2012-08-06 95 views
3

回答another question,我偶然發現一個名爲herror的函數的man page。它看起來非常像perror,只是它打印與某些主機查找問題有關的錯誤。該手冊頁聲明此功能「已過時」。函數hsterror可用於將錯誤號碼轉換爲字符串而不打印它也被標記爲過時。不贊成

我沒有看到任何跡象顯示,以爲什麼其中一方是過時的,什麼更換應改爲使用。那麼,在GNU libc linux系統中,將一個模糊的h_errno錯誤號變成用戶可讀的字符串的首選方法是什麼?是否每個小應用程序都應該發佈自己的翻譯表,並且希望可能的錯誤代碼不會很快改變?

回答

4

它們已經過時,因爲gethostbyname*已過時。改爲使用getaddrinfo,並使用gai_strerror來排除錯誤。

gethostbyname(3) man page

的的gethostbyname *()和gethostbyaddr *()函數是過時的。應用程序應改爲使用getaddrinfo(3)getnameinfo(3)

+0

謝謝!這個消息看起來比我先讀的消息稍微不明顯。一個鏈接到新手冊頁會很好,但無論如何,一旦我被允許,我會接受這個答案。 – MvG 2012-08-06 17:08:43

+0

@MvG:你很受歡迎。鏈接添加。問候 – jxh 2012-08-06 17:09:53