多路IO(三)——poll机制

多路IO之poll机制

poll函数

1.函数原型

#include <poll.h>

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

2.功能

  • 监听集合有没有动静,如果没有动静就阻塞
  • 如果有动静就成功返回,返回值为集合中有动静的fd的数量

3.参数

  1. fds:这个参数写为struct pollfd fds[]更好理解些,第一个参数要求传递一个struct pollfd结构体数组。
    • 这个数组就相当于select的文件描述符集合,只不过select是使用fd_set来定义的,而poll的集合是一个数组。

    • struct pollfd的成员:

    • struct pollfd {
                     int   fd;         /* file descriptor */
                     short events;     /* 设置我们希望发生的事件,比如读事件,这个需要我们自己设置 */
                     short revents;    /* 实际发生的事情,比如读事件,由poll机制自己设置 */
      };
      
    • struct pollfd fds[2];
      fds[0].fd = 0;
      fds[0].events = POLLIN;//读事件(输入事件)
      fds[1].fd = 3;
      fds[1].events = POLLIN;//读事件(输入事件)
      
    • 一般来说不

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值