poll 另一种多路复用

select方法是多个UNIX平台支持的非常常见的I/O多路复用技术,通过描述符集合来表示检测的I/O对象,通过三个不同的描述符集合来描述检测I/O事件,可读,可写,异常  。 select 的缺点是 所支持的文件描述符的个数是有限的。在Linux系统中,select

d的默认最大值为1024

poll函数的原型

与内乎交互的数据结构有所变化,也突破了文件描述符的个数限制

int poll(struct pollfd *fds ,unsigned long nfds,int timeout);


struct pollfd {
    int    fd;       /* file descriptor */
    short  events;   /* events to look for */
    short  revents;  /* events returned */
 };

fd 文件描述符

events 表示多个不同的事件

宏定义:
#define    POLLIN    0x0001    /* any readable data available */
#define    POLLPRI   0x0002    /* OOB/Urgent readable data */
#define    POLLOUT   0x0004    /* file descriptor is writeable */

revent 理解为 returned events 不需要每次测完重置待检测的描述字和感兴趣的事件,直接将结果保留在revents中

返回检测到事件的个数 

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值