herror已被弃用

时间:2012-08-06 17:02:50

标签: c networking glibc gethostbyaddr

回答another question,我偶然发现了一个名为herror的{​​{3}}函数。它看起来非常像perror,除了它打印与某些主机查找问题相关的错误。手册页指出此功能是“过时的”。函数hsterror可用于将错误号转换为字符串而不打印它也标记为过时。

我没有看到任何迹象表明为什么它们中的任何一个已经过时,而应该使用替换。那么在GNU libc linux系统上将一个模糊h_errno错误号转换为用户可读字符串的首选方法是什么?每个小应用程序是否应该发布自己的转换表,并希望这组可能的错误代码不会很快改变?

1 个答案:

答案 0 :(得分:4)

它们已经过时,因为gethostbyname*已过时。请改用getaddrinfo,并使用gai_strerror表示错误。

来自gethostbyname(3) man page

  

gethostbyname *()和gethostbyaddr *()函数已过时。应用程序应使用getaddrinfo(3)getnameinfo(3)代替。