On Windows the use of select
forces you to include the Winsock library which has to be initialized like this in your application:
WORD wVersionRequested = MAKEWORD(1,0);
WSADATA wsaData;WSAStartup(wVersionRequested,&wsaData);
And then the select won't allow you to be called without any socket so you have to do a little more to create a microsleep method:
int usleep(long usec){struct timeval tv;
fd_set dummy;
SOCKET s = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
FD_ZERO(&dummy);
FD_SET(s,&dummy);
tv.tv_sec = usec/1000000L;
tv.tv_usec = usec%1000000L;return select(0,0,0,&dummy,&tv);}
All these created usleep methods return zero when successful and non-zero for errors.