NAME
gai_strerror – get error message string from EAI_xxx error code
SYNOPSIS
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
const char *
gai_strerror(int ecode);
DESCRIPTION
The gai_strerror() function returns an error message string corresponding to the error code returned by getaddrinfo(3) or getnameinfo(3).
The following error codes and their meaning are defined in ⟨netdb.h⟩:
- EAI_ADDRFAMILY
-
Address family for hostname not supported
- EAI_AGAIN
-
Name could not be resolved at this time
- EAI_BADFLAGS
-
flags parameter had an invalid value
- EAI_BADHINTS
-
invalid value for hints
- EAI_FAIL
-
Non-recoverable failure in name resolution
- EAI_FAMILY
-
Address family was not recognized
- EAI_MEMORY
-
Memory allocation failure
- EAI_NODATA
-
No address associated with hostname
- EAI_NONAME
-
Name does not resolve
- EAI_OVERFLOW
-
argument buffer overflow
- EAI_PROTOCOL
-
Resolved protocol is unknown
- EAI_SERVICE
-
Service was not recognized for socket type
- EAI_SOCKTYPE
-
Intended socket type was not recognized
- EAI_SYSTEM
-
System error returned in errno
RETURN VALUES
The gai_strerror() function returns a pointer to the error message string corresponding to ecode. If ecode is out of range, an implementation-specific error message string is returned.
SEE ALSO
STANDARDS
- RFC 3493
-
Basic Socket Interface Extensions for IPv6
EAI_ADDRFAMILY and EAI_NODATA were in previous RFCs, but not in RFC 3493. They are not in POSIX (IEEE Std 1003.1-2017). They were in FreeBSD before 5.2, and were re-added for 14.0. EAI_BADHINTS, EAI_OVERFLOW, and EAI_PROTOCOL are not in RFC 3493 or POSIX.