6.1.1.8. Select And Poll System Calls

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
};