#include #include #include #include #include // gcc -o dev-windows-select-test.exe dev-windows-select-test.c -Wall -mwindows int main(int argc, char *argv[]) { int fd = open("/dev/windows", O_RDONLY); if (PostMessage(NULL, WM_USER, 0, 0) != 0) printf("PostMessage succeeded\n"); else printf("PostMessage failed\n"); if (argc <= 1) { MSG msg; if (PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE)) printf("PeekMessage reports a message available\n"); } struct timeval timeout; timeout.tv_sec = 5; timeout.tv_usec = 0; fd_set readfds; FD_ZERO(&readfds); FD_SET(fd, &readfds); int rc = select(fd+1, &readfds, NULL, NULL, &timeout); printf("select returned %d %s\n", rc, strerror(errno)); return 0; }