函数poll(UNIX环境高级编程笔记)

  poll函数类似于select,但是程序接口有所不同。poll函数可用于任何类型的文件描述符。

#include <poll.h>
int poll(struct pollfd fdarray[ ], nfds_t nfds, int timeout);
            返回值:准备就绪的描述符数目;若超时,返回0;若出错,返回-1

  poll构造了一个pollfd结构的数组,每个数组元素制定了一个描述符编号以及我们对该描述符感兴趣的条件。

struct pollfd {
  int fd;        / * file descriptor * /
  short events;    / * requested events * /
  short revents;   / * returned events * /
};

  nfds为fdarray数组中的元素数目。
  应将每个数组元素的events成员设置为下图中所示值的一个或几个,通过这些值告诉内核我们关心的是每个描述符的哪些事件。poll函数并没有和select一样更改events成员。
  下图中前4行测试的是可读性,接下来的3行测试的可写性,最后3行测试的异常条件。
在这里插入图片描述
  poll的最后一个参数指定的是愿意等待多长时间。具体用法与select相同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值