Using Winsock2
the code sequence below returns -1
(failure) for select()
.
#include
#include
This is expected behavior. As mentioned all over the documentation, winsock's select
function only works on sockets, and stdin
is not a socket.
If you had called WSAGetLastError
, you undoubtedly would have found that the cause was
WSAENOTSOCK
One of the descriptor sets contains an entry that is not a socket.
Try WSAEventSelect
and WaitForMultipleObjectsEx
; the latter can also wait on normal file handles as well as OVERLAPPED event objects from outstanding read operations on normal file handles.