或多或少是它在标题中所说的。我打电话给 getaddrinfo,如下所示:
struct addrinfo crossplat, *actual_addr;
crossplat.ai_family = AF_UNSPEC; //IPv4 or IPv6.
crossplat.ai_socktype = SOCK_STREAM;
if(int i = getaddrinfo("localhost", "8000", &crossplat, &actual_addr)!=0){
cerr << "error code " << i << " received. Meaning: "<< gai_strerror(i) << endl;
return -1;
}
自豪地打印:
error code 1 received. Meaning: Unknown error
在我的系统上。
我系统上的 getaddrinfo 手册页:
RETURN VALUE
getaddrinfo() returns 0 if it succeeds, or one of the following
nonzero error codes:
EAI_ADDRFAMILY....
...The gai_strerror() function translates these error codes to a
human readable string, suitable for error reporting.
这表明 getaddrinfo 返回的所有非零代码都应该是列出的 EAI_* 系列代码之一。在线搜索表明 gai_strerror() 仅在传递一个不是EAI_* 系列成员的错误代码时才会返回“未知错误” ,这似乎排除了“1”是这样的代码。
显然我在这里做错了,所以任何帮助将不胜感激!