当前位置:   article > 正文

IO多路复用Select epool编程20210222

IO多路复用Select epool编程20210222

select模型

系统提供select函数来实现多路复用输入/输出模型。
select系统调用是用来让我们的程序监视多个文件句柄的状态变化的。程序会停在select这里等待,直到被监视的文件句柄有一个或多个发生了状态改变。关于文件句柄,其实就是一个整数,我们最熟悉的句柄是0、1、2三个,0是标准输入,1是标准输出,2是标准错误输出。0、1、2是整数表示的,对应的FILE *结构的表示就是stdin、stdout、stderr。

int select(int maxfdp1, fd_set *readset, fd_set *writeset, fd_set *exceptset,struct timeval *timeout);
struct timeval  
{  
    time_t tv_sec;//second  
    time_t tv_usec;//minisecond  
}; 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • maxfdp:被监听的文件描述符的总数,它比所有文件描述符集合中的文件描述符的最大值大1,因为文件描述符是从0开始计数的;
  • readfds、writefds、exceptset:分别指向可读、可写和异常等事件对应的描述符集合。
  • timeout:用于设置select函数的超时时间,即告诉内核select等待多长时间之后就放弃等待。timeout == NULL,表示等待无限长的时间
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/797931
推荐阅读
相关标签
  

闽ICP备14008679号