IO多路复用之poll

1. poll函数原型: 

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

参数: 

  • fds:指向一个结构体数组的第0个元素的指针,每个数组元素都是一个struct pollfd结构,用于指定测试某个给定的fd的条件 
  • nfds:表示fds结构体数组的长度 
  • timeout:表示poll函数的超时时间,单位是毫秒 

函数功能: 

  • 监视并等待多个文件描述符的属性变化 

函数返回值: 

  • 返回值小于0,表示出错 
  • 返回值等于0,表示poll函数等待超时 
  • 返回值大于0,表示poll由于监听的文件描述符就绪返回,并且返回结果就是就绪的文件描述符的个数。

 

2. pollfd结构体  

struct pollfd
{
    int fd;            //文件描述符
    short events;    //要求查询的事件掩码
    short revents;    //返回的事件掩码
}

成员变量说明: 

  • fd:每一个 pollfd 结构体指定了一个被监视的文件描述符,可以传递多个结构体,指示 poll() 监视多个文件描述符。 
  • events:表示要告诉操作系统需要监测fd的事件(输入、输出、错误),每一个事件有多个取值 
  • revents:revents 域是文件描述符的操作结果事件,内核在调用返回时设置这个域。events 域中请求的任何事件都可能在 revents 域中返回

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值