C 不赞成的

C 不赞成的,c,networking,glibc,gethostbyaddr,C,Networking,Glibc,Gethostbyaddr,回答这个问题时,我偶然发现了一个名为herror的函数。它看起来非常像perror,只是它打印与某些主机查找问题相关的错误。手册页说明此功能已“过时”。一个函数hsterror,可以用来将错误号转换为字符串而不打印,它也被标记为已过时 我没有看到任何迹象表明为什么它们中的任何一个已经过时,以及应该使用什么替代品。那么,在GNU libc linux系统上,将模糊的h_errno错误号转换为用户可读的字符串的首选方法是什么?是否每个小应用程序都应该提供自己的翻译表,并希望可能的错误代码集不会很快改

回答这个问题时,我偶然发现了一个名为
herror
的函数。它看起来非常像
perror
,只是它打印与某些主机查找问题相关的错误。手册页说明此功能已“过时”。一个函数
hsterror
,可以用来将错误号转换为字符串而不打印,它也被标记为已过时


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

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

从:

gethostbyname*()和gethostbyaddr*()函数已过时。应用程序应该使用和


谢谢这条信息看起来比我第一次读到的要不那么明显。链接到新的手册页会很好,但无论如何,一旦我被允许,我会接受这个答案。