Reference

gai_strerror(3)

get error message string from EAI_xxx error code

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

getaddrinfo(3), getnameinfo(3)

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.

History