In the folowing code : If I include <stdio.h> before <windows.h> and <winsock2.h>, select() always generate 10022 error. If I include <stdio.h> after <windows.h> and <winsock2.h>, select() works OK.
#include <stdio.h> #include <windows.h> #define USE_SYS_TYPES_FD_SET #include <winsock2.h> int main(int argc, char *argv[]) { WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested = MAKEWORD( 2, 2 ); err = WSAStartup( wVersionRequested, &wsaData ); if ( err != 0 ) { printf("we could not find a usable WinSock DLL\n"); return -1; } if ( LOBYTE( wsaData.wVersion ) != 2 || HIBYTE( wsaData.wVersion ) != 2 ) { printf("we could not find a usable WinSock DLL\n"); WSACleanup( ); return -1; } fd_set fds; int s= socket(AF_INET, SOCK_STREAM, 0); FD_ZERO(&fds); FD_SET((unsigned)s, &fds); if( select(s+1, &fds, NULL, NULL, 0) == -1 ) { printf("socket error : %d\n", WSAGetLastError()); return -1; } return 0; } -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/