多路IO(三)——poll机制

本文详细介绍了Linux中的poll函数,包括其函数原型、功能、参数解析以及使用示例。poll机制用于监听文件描述符集合的事件,当有事件发生时返回相应fd的数量。超时时间可以设置为阻塞或非阻塞,并且可以通过检查文件描述符的“发生的事件”与“实际事件”来确定何时进行读写操作。
摘要由CSDN通过智能技术生成

多路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;//读事件(输入事件)
      
    • 一般来说不

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值