(1)头文件

#include <poll.h>

(2)函数原型

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

(3)参数
参 1:struct pollfd 类型结构体数组的首地址 。是传入传出参数

struct pollfd
{int fd; // 要监听的文件描述符:负值无效
short events; // 要监听的事件宏: POLLIN (读) / POLLOUT(写) / POLLERR
short revents; // 返回的事件宏:调用 poll 后内核填写(与 events 相同),可初始化为 0
};

参 2:数组实际有效大小 (比如数组初始化定义 100,但只使用了 5 个,nfds = 5)。
参 3:int 型 : -1代表永久阻塞,直到监控事件发生;0代表立即返回,不阻塞进程;> 0表示等待指定的毫秒数。
(4)返回值
成功返回所监听的监听集合中满足条件的文件描述符总数量;失败返回-1,设置errno,若timeout=0,errno=EAGAIN则代表正常。
(5)poll 相较于 select 的优势
poll 突破了 1024 的限制;select 的监听和返回的集合是不分离的,是通过传入传出的方式实现;而 poll 通过“参数 1”的结构体实现请求和返回分离。
(6)poll 相较于 select 的劣势
1不能跨平台,只能在 linux 下使用,导致 poll 地位比较尴尬。

多路 IO 转接 :poll 函数相关推荐

  1. 多路IO转接——前导

    文章目录 IO的概念 但是操作系统是怎么知道当前网卡当中是有数据: 中断.中断向量 中断向量表 底层数据到达时操作系统做了啥: 硬中断 软中断 软中断 硬中断 中断 高级IO为何高效 高级IO的本质 ...

  2. epoll实现多路io转接

    epoll实现多路IO转接思路: lfd = socket(); 监听连接事件lfd bind(); listen(); int epfd = epoll_create(1024); epfd, 监听 ...

  3. 多路 IO 转接 :select 函数

    (1)头文件: #include <sys/select.h> (2)函数原型: int select( int nfds, fd_set *readfds, fd_set *writef ...

  4. Linux中的多路IO转接,转载

    linux系统对于多路i/o转接提供了几个强大的函数,但是这些函数各有优缺点,参照网上的资料以及自己的测试,总结如下: 首先看一个程序的例子: #include        <time.h&g ...

  5. 多路 IO 转接 :epoll 函数

    因为 select 和 poll 的返回值特性,所以想判断到底哪个文件描述符发生了事件,需要遍历文件描述符表,因此,在"高并发.少访问"情况下,比如 1000 个连接,就 3 个发 ...

  6. C语言 IO多路复用——poll函数

    友链 gcc 1.c -o 1 -lpthread ctrl+f搜索服务端代码和客户端代码获取代码 该方法也可以实现并发服务器 IO多路复用,IO多路转接 简介 IO多路复用中的IO并不是指单纯的标准 ...

  7. 2高并发服务器:多路IO之poll

     1 poll A 依赖的头文件 #include <poll.h> B 函数声明 int poll(struct pollfd *fds, nfds_t nfds,int timeo ...

  8. 多路IO转接服务器 epoll

    创建一个epoll句柄,参数size用来告诉内核监听的文件描述符的个数,跟内存大小有关. #include <sys/epoll.h> int epoll_create(int size) ...

  9. 29.Linux网络编程熟练掌握 TCP 状态张换图熟练堂握端口复用的方法了解半关闭的概念和实现方式了解多路10 转接模型熟练掌握 select 函数的使用熟练使用 fdset 相关函数的使用能够编写

    把昨天的 第二天的内容说一下,复习一下,第二天 讲的东西不算多,但是有两个作业题来写一写, 大致浏览一下,三次握手 四次挥手的过程,大家有没有画一下? 能画出来吗?同学们,大家注意 这个写代码的时候其 ...

最新文章

  1. 建站常用13种PHP开源CMS比较
  2. Python学习笔记(基础知识点二)开更了~
  3. Opportunity search in backend for status - some default system status
  4. lc滤波器是利用电感的感抗_电感知识
  5. json解析对象时指定解析_不解析,使用解析对象
  6. VS|Qt工作笔记-修改pro文件生成目录清晰的项目结构并添加三方库
  7. 一文读懂Http Headers为何物(超详细)
  8. 初次体验.net Ajax无刷新技术
  9. 【C语言项目设计】趣味算术游戏设计
  10. Azure:云平台概述
  11. android CircleIndicator 实现引导页
  12. mysql ndb 命令_MySQL NDB Cluster环境启动与关闭
  13. Google Safe Browsing API的实施
  14. 小鑫の日常系列故事(十)——排名次
  15. 山东大学软件学院项目实训-创新实训-网络安全靶场实验平台(十六)
  16. 读书笔记 - 学会写作: 什么是写作?
  17. 2021-04-27 Android 理解frameworks services jni hardware kernel 整个控制过程实例包括回调
  18. fft理解-cooley turkey
  19. php 类型提示,PHP中的类型提示(type hinting)功能介绍
  20. csc_matix函数

热门文章

  1. AAAI 2022 | 北大 阿里达摩院:基于对比学习的预训练语言模型剪枝压缩
  2. 结合随机微分方程,多大Duvenaud团队提出无限深度贝叶斯神经网络
  3. Bengio等人新作:基于双层规划的端到端分子构象生成框架
  4. AAAI 2021 | 基于对比学习的聚类工作
  5. 总奖金近9万!视频超分辨率大赛等你来战!
  6. Word Embedding News | 词嵌入新鲜事:COVID-19特刊
  7. java基本类_Java基本类型
  8. python可以制作网站吗_小白如何入门Python? 制作一个网站为例
  9. spring-注入集合对象
  10. Iris——整合go-playground/validator参数校验Demo