1.\" $KAME: gai_strerror.3,v 1.1 2005/01/05 03:04:47 itojun Exp $ 2.\" $OpenBSD: gai_strerror.3,v 1.4 2004/12/20 23:04:53 millert Exp $ 3.\" 4.\" Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC") 5.\" Copyright (C) 2000, 2001 Internet Software Consortium. 6.\" 7.\" Permission to use, copy, modify, and distribute this software for any 8.\" purpose with or without fee is hereby granted, provided that the above 9.\" copyright notice and this permission notice appear in all copies. 10.\" 11.\" THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH 12.\" REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 13.\" AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, 14.\" INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 15.\" LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE 16.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 17.\" PERFORMANCE OF THIS SOFTWARE. 18.\" 19.\" $FreeBSD$ 20.\" 21.Dd November 2, 2022 22.Dt GAI_STRERROR 3 23.Os 24.Sh NAME 25.Nm gai_strerror 26.Nd get error message string from EAI_xxx error code 27.Sh SYNOPSIS 28.In sys/types.h 29.In sys/socket.h 30.In netdb.h 31.Ft "const char *" 32.Fn gai_strerror "int ecode" 33.Sh DESCRIPTION 34The 35.Fn gai_strerror 36function returns an error message string corresponding to the error code 37returned by 38.Xr getaddrinfo 3 39or 40.Xr getnameinfo 3 . 41.Pp 42The following error codes and their meaning are defined in 43.In netdb.h : 44.Pp 45.Bl -tag -width ".Dv EAI_ADDRFAMILY" -offset indent -compact 46.It Dv EAI_ADDRFAMILY 47Address family for hostname not supported 48.It Dv EAI_AGAIN 49Name could not be resolved at this time 50.It Dv EAI_BADFLAGS 51flags parameter had an invalid value 52.It Dv EAI_BADHINTS 53invalid value for 54.Fa hints 55.It Dv EAI_FAIL 56Non-recoverable failure in name resolution 57.It Dv EAI_FAMILY 58Address family was not recognized 59.It Dv EAI_MEMORY 60Memory allocation failure 61.It Dv EAI_NODATA 62No address associated with hostname 63.It Dv EAI_NONAME 64Name does not resolve 65.It Dv EAI_OVERFLOW 66argument buffer overflow 67.It Dv EAI_PROTOCOL 68Resolved protocol is unknown 69.It Dv EAI_SERVICE 70Service was not recognized for socket type 71.It Dv EAI_SOCKTYPE 72Intended socket type was not recognized 73.It Dv EAI_SYSTEM 74System error returned in 75.Va errno 76.El 77.Sh RETURN VALUES 78The 79.Fn gai_strerror 80function 81returns a pointer to the error message string corresponding to 82.Fa ecode . 83If 84.Fa ecode 85is out of range, an implementation-specific error message string is returned. 86.Sh SEE ALSO 87.Xr getaddrinfo 3 , 88.Xr getnameinfo 3 89.Sh STANDARDS 90.Bl -tag -width ".It RFC 3493" 91.It RFC 3493 92Basic Socket Interface Extensions for IPv6 93.El 94.Pp 95EAI_ADDRFAMILY and EAI_NODATA were in previous RFCs, but not in RFC 3493. 96They are not in POSIX (IEEE Std 1003.1-2017). 97They were in 98.Fx 99before 5.2, and were re-added for 14.0. 100EAI_BADHINTS, EAI_OVERFLOW, and EAI_PROTOCOL are not in RFC 3493 or POSIX. 101