回答another question,我偶然发现了一个名为herror
的{{3}}函数。它看起来非常像perror
,除了它打印与某些主机查找问题相关的错误。手册页指出此功能是“过时的”。函数hsterror
可用于将错误号转换为字符串而不打印它也标记为过时。
我没有看到任何迹象表明为什么它们中的任何一个已经过时,而应该使用替换。那么在GNU libc linux系统上将一个模糊h_errno
错误号转换为用户可读字符串的首选方法是什么?每个小应用程序是否应该发布自己的转换表,并希望这组可能的错误代码不会很快改变?
答案 0 :(得分:4)
它们已经过时,因为gethostbyname*
已过时。请改用getaddrinfo
,并使用gai_strerror
表示错误。
gethostbyname *()和gethostbyaddr *()函数已过时。应用程序应使用getaddrinfo(3)和getnameinfo(3)代替。