Я пытался создать UDP-сокет на mingw, но socket()
возвращает -1
, с errno = 0
.Странный.Я включил winsock2.h.Изначально у меня была ошибка компиляции undefined reference to socket@12
, после установки -lws2_32
и -lwsock32
в настройках компоновщика Code :: Block, успешная компиляция.
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 ОШИБКА: нет ошибки, 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: ошибки нет, ошибка 0Возможно ли, что mingw не поддерживает errno ??