我正在使用C / C ++(混合)在linux机器上开发专用游戏服务器。我有以下代码片段:
int sockfd=socket(AI_INET, SOCK_DGRAM, 0);
if(sockfd==-1)
{
int err=errno;
fprintf(stderr,"%s",strerror(err));
exit(1);
}
我的问题是套接字返回-1(意味着失败)并且正在打印错误字符串,但它是“成功”(ERROR_SUCCESS)。
其他说明:
答案 0 :(得分:11)
我觉得非常愚蠢。仔细查看我的代码,在我的开发计算机上显示:
if(sockfd==-1);
...
答案 1 :(得分:1)
你有多个线程在运行吗?他们可能会覆盖errno值。
你遗漏了socket()和if()之间是否有任何代码行?另一个函数调用可能会覆盖错误。