我试图在 mingw 上创建一个 UDP 套接字,但socket()
返回-1
errno = 0
。奇怪的。我已经包含了winsock2.h。最初我有编译错误undefined reference to socket@12
,在设置
-lws2_32
和-lwsock32
链接代码设置后::块,编译成功。
sockfd = socket(AF_INET, SOCK_DGRAM, 0);
RDF_LOG(kDEBUG, "sockfd %d ", sockfd);
if (sockfd < 0){
RDF_LOG(kERROR, "ERROR: %s , errno %d\n", strerror(errno), errno);
}
结果 --> sockfd -1 ERROR: No error , errno 0
好的,我将 RDF_LOG 改为 fprintf。
int tmp = 0;
sockfd = socket(AF_INET, SOCK_DGRAM, 0);
tmp = errno;
fprintf(stderr, "sockfd %d ", sockfd);
if (sockfd < 0){
fprintf(stderr, "socket: %s , errno %d\n", strerror(tmp), tmp);
}
返回的结果仍然是 --> sockfd -1 socket: No error , errno 0 是不是mingw不支持errno?