select.h 587 B

123456789101112131415161718192021222324
  1. #pragma once
  2. #include <sys/cdefs.h>
  3. #include <sys/types.h>
  4. #include <string.h>
  5. __BEGIN_DECLS
  6. #define FD_SETSIZE 64
  7. #define FD_ZERO(set) memset((set), 0, sizeof(fd_set));
  8. #define FD_CLR(fd, set) ((set)->bits[(fd / 8)] &= ~(1 << (fd) % 8))
  9. #define FD_SET(fd, set) ((set)->bits[(fd / 8)] |= (1 << (fd) % 8))
  10. #define FD_ISSET(fd, set) ((set)->bits[(fd / 8)] & (1 << (fd) % 8))
  11. struct __fd_set {
  12. unsigned char bits[FD_SETSIZE / 8];
  13. };
  14. typedef struct __fd_set fd_set;
  15. int select(int nfds, fd_set* readfds, fd_set* writefds, fd_set* exceptfds, struct timeval* timeout);
  16. __END_DECLS