int select (int setsize,
fd_set *readfds,
fd_set *writefds,
fd_set *exceptfds,
struct timeval *timeout);
int poll (struct pollfd *ufds,
unsigned int nfds,
int timeout);
struct pollfd
{
int fd;
short events; // requested events
short revents; // returned events
};