0%

select、poll、epoll的使用

select系统调用

select系统调用的用途是:在一段时间内,监听多个文件描述符上的可读、可写和异常等事件。

1
2
3
4
		#include <sys/time.h>         /* For portability */ 
#include <sys/select.h>

int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);
  • nfds 被监听文件描述符的总和(readfds + writefds + exceptfds)
  • readfds、writefds、exceptfds分别指向可读、可写、异常事件对应的文件描述符集合
  • timeout 超时时间
    •       ==0,检查一遍文件描述符状态立即返回;
    • == NULL 或者 非零值,会一直阻塞直到:
      •                          三种fds中有至少一个文件描述符进入ready状态
      •                        被信号处理中断
      •                        到达指定的超时时间
-------------THE END-------------

欢迎关注我的其它发布渠道