poll函数的分析

poll函数和select实现的功能差不多,poll的作用是把当前的文件指针挂到等待队列。
外文名poll作 用把当前的文件指针挂到等待队列
函数原型:

#include <poll.h>
int poll(struct pollfd fds[], nfds_t nfds, int timeout)struct pollfd {
int fd; /*文件描述符*/
short events; /* 等待的需要测试事件 */
short revents; /* 实际发生了的事件,也就是返回结果 */
};

1 参数
参数1:fds数组的首地址
参数2:nfds:nfds_t类型的参数,用于标记数组fds中的结构体元素的总数量
参数3:timeout:是poll函数调用阻塞的时间

2 优点:
实现了监听1024个文件描述符的限制(通过修改配置文件来实现)
在这里插入图片描述
这个是用户计算机最多打开的文件描述符上限
在这里插入图片描述
在文件尾写入以下配置,soft软限制,hard硬限制
soft nofile 65536
hard nofile 100000

监听 返回集合实现了分离 不是同一个了(每一个监听的对象都变成一个数组)
搜索的范围变小
3 缺点:
效率还是低
4 返回值
满足条件的文件描述符总数
5 实现过程:

struct pollfd fds[500];
fds[0].fd=listenfd;
fds[0].eventts=POLLIN;
fds[1].fd=fd1;
fds[1].events=POLLOUT
fds[2].fd=fd1;
fds[2].events=POLLOUT
poll(fds,5,-1);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值