Répondant à une autre question , je suis tombé sur la page de manuel d’une fonction appelée herror
. Cela ressemble beaucoup à perror
sauf qu’il perror
erreurs liées à un problème de recherche d’hôte. La page de manuel indique que cette fonction est «obsolète». Une fonction hsterror
qui pourrait être utilisée pour transformer le numéro d’erreur en une chaîne de caractères sans l’imprimer est également marquée comme étant obsolète.
Ce que je ne vois pas, c’est que rien n’indique pourquoi l’ un d’eux est obsolète et quel substitut il faudrait utiliser. Alors, quel est le moyen préféré pour transformer un h_errno
erreur obscur h_errno
en une chaîne lisible par l’utilisateur sur un système GNU libc linux? Chaque petite application devrait-elle fournir sa propre table de traduction et espérer que l’ensemble des codes d’erreur possibles ne changera pas de sitôt?
Ils sont obsolètes car gethostbyname*
est obsolète. Utilisez plutôt getaddrinfo
et utilisez gai_strerror
pour les erreurs.
De la page de manuel gethostbyname(3)
:
Les fonctions gethostbyname * () et gethostbyaddr * () sont obsolètes. Les applications doivent plutôt utiliser getaddrinfo (3) et getnameinfo (3) .