I/O复用(一)select

本文介绍了Linux上的I/O复用系统调用API中的select机制,包括其工作原理、函数原型及参数含义。通过示例,解释了如何设置和检查文件描述符的就绪状态,以及select在高性能服务器编程中的作用。
摘要由CSDN通过智能技术生成

在《Linux高性能服务器编程》一书上对I/O复用是这么解释的:

I/O复用使得程序能够同时监听多个文件描述符

简单理解来说就是:一个进程或者一个线程能够同时对多个文件描述符提供服务,服务器上的进程或者线程 ,如何将多个文件描述符统一监听,当任意一个文件描述符上由事件发生,都能够及时处理。Linux上的I/O复用系统调用API有三个select  /  poll  / epoll    先来说一下select:

select:在一段时间内,监听用户感兴趣的可读可写和异常事件

事件类型只有三类:读、写、异常 ,启动监听,本身会阻塞,每次select调用之前都需要重新设置,所以用户程序必须保存所有现在还用的文件描述符,select每次都会将所有的文件描述符返回,select返回以后,必须探测哪些是就绪的文件描述符。下面是select函数原型:

int select(int nfds,fd_set * readfds,fd_set * writefds,fd_set * excefds,struct timeval * timeout);

nfds

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值