一、基本知识

poll的机制与select类似,与select在本质上没有多大差别,管理多个描述符也是进行轮询,根据描述符的状态进行处理,但是poll没有最大文件描述符数量的限制。poll和select同样存在一个缺点就是,包含大量文件描述符的数组被整体复制于用户态和内核的地址空间之间,而不论这些文件描述符是否就绪,它的开销随着文件描述符数量的增加而线性增大。

二、函数

#include <poll.h>
int main(struct pollfd *fds, nfds_t nfds, int timeout)//pollfd结构
struct pollfd{int  fd;short events;short revents;
};

参数说明
fds是一个poll函数监听的结构列表,每一个元素中,包含了三部分内容:文件描述符、监听的事件集合,返回的事件集合。
nfds表示fds数组的长度。
timeout 表示poll 函数的超时间,单位是毫秒(ms)。
events 和 revents的取值
| 事件 |描述 |
|POLLIN| 数据(包括普通数据和优先数据)可读 |
| POLLRDNORM| 普通数据可读|
| POLLRDBAND| 优先级带数据可读(Linux不支持)|
| POLLPRI| 高优先级数据可读,比如TCP带外数据|
| POLLOUT| 数据(包括普通数据和优先数据)可写|
| POLLWRNORM| 普通数据可写|
| POLLWRBAND| 优先级数据可写|
| POLLRDHUP| TCP链接被对方关闭,或者对方关闭了写操作。|
| POLLERR| 错误|
| POLLHUP| 挂起|
| POLLNVAL| 文件描述符没有打开|
返回结果
返回值小于0,表示出错。
返回值等于0,表示poll函数等待超时。
返回值大于0,表示poll由于监听的文件描述符就绪而返回。

青轩桃李能几何,流光欺人忽蹉跎。 poll相关推荐

  1. 第二十二章 opengl之高级OpenGL(几何着色器)

    OpenGL 使用几何着色器 用点造物体 爆破物体 法向量可视化 在顶点和片段着色器之间有一个可选的几何着色器(Geometry Shader), 几何着色器的输入是一个图元(如点或三角形)的一组顶点 ...

  2. 详解磁盘IO、网络IO、零拷贝IO、BIO、NIO、AIO、IO多路复用(select、poll、epoll)

    文章很长,但是很用心! 文章目录 1. 什么是I/O 2. 磁盘IO 3. 网络IO 4. IO中断与DMA 5. 零拷贝IO 6. BIO 7. NIO 8. IO多路复用 8.1 select 8 ...

  3. 几何深度学习(Geometric Deep Learning)技术

    几何深度学习(Geometric Deep Learning)技术 几何深度学习综述 从论文Geometric Deep Learning: Grids, Groups, Graphs, Geodes ...

  4. 虚拟纹理与几何图像技术

    虚拟纹理与几何图像技术 一. 基本图形学概念 图1. 几何与纹理. 曲面一般表示成三角网格和纹理图像,三角网格表示曲面的几何拓扑信息,纹理图像给出曲面的颜色材质等信息.将三角网格映射到平面区域的过程被 ...

  5. 使用Blender中的几何节点创建程序对象

    大小解压后:2.4G 持续时间3h 30m 1280X720 MP4 语言:英语+中英文字幕(根据原英文字幕机译更准确) 使用Blender中的几何节点按程序创建对象 信息: 使用Blender中的几 ...

  6. linux下poll和epoll内核源代码剖析

    作者:董昊 博客链接http://donghao.org/uii/ poll和epoll的使用应该不用再多说了.当fd很多时,使用epoll比poll效率更高. 我们通过内核源码分析来看看到底是为什么 ...

  7. select,epoll,poll比较

    select,poll,epoll简介 select select本质上是通过设置或者检查存放fd标志位的数据结构来进行下一步处理.这样所带来的缺点是: 1 单个进程可监视的fd数量被限制 2 需要维 ...

  8. 朴素、Select、Poll和Epoll网络编程模型实现和分析——Poll、Epoll模型处理长连接性能比较

    在<朴素.Select.Poll和Epoll网络编程模型实现和分析--模型比较>一文中,我们分析了各种模型在处理短连接时的能力.本文我们将讨论处理长连接时各个模型的性能.(转载请指明出于b ...

  9. 朴素、Select、Poll和Epoll网络编程模型实现和分析——模型比较

    经过之前四篇博文的介绍,可以大致清楚各种模型的编程步骤.现在我们来回顾下各种模型(转载请指明出于breaksoftware的csdn博客) 模型编程步骤对比 <朴素.Select.Poll和Ep ...

最新文章

  1. Ext.js Tree
  2. python 文件命令
  3. ssh反向主动连接 及脚本加密
  4. pycharm 黄色(黄字)高亮警告 Default argument value is mutable 原因及解决办法(mutable 可变对象与 immutable不可变对象)
  5. 微信小程序 css边框阴影,微信小程序|CSS的内边距和圆框
  6. android html模板下载地址,Android HTML模板
  7. 在线拍卖系统代码_来了来了,轻工业领域拍卖的福利来啦!聚拍网终于扩展新范围啦...
  8. 关于Microsoft Edge主页被360劫持
  9. 手机无线上网何时进入战国时代?
  10. Chrome谷歌浏览器无法自动同步的解决办法
  11. 简述多媒体计算机的特点,多媒体技术的主要特点
  12. 知了课堂 flask 笔记总结
  13. 学计算机cpu重要还是显卡重要,电脑玩游戏CPU重要还是显卡更重要?
  14. 服务器无线桥接怎么设置,WDS无线桥接如何设置
  15. quasar使用keep alive警告 Component inside <Transition> renders non-element root node
  16. Oracle报错宗介
  17. 操作系统基本功能(操作系统)
  18. es查询所欲_elasticsearch之查询的两种方式
  19. ZLG-IP中ARP协议存在BUG
  20. 【Java高级】多线程基础

热门文章

  1. GDB调试器源代码分析系列--Inferior call的实现与分析(1)
  2. 装机员系统下载合集(五月更新发布)!
  3. cvpr2020 人脸检测与识别_就CVPR2020的来看,目前人工智能的研究热点有哪些进展?未来的研究趋势会有什么变化?...
  4. 华三虚拟机服务器型号,03-虚拟机配置
  5. Java实现 蓝桥杯 算法训练 删除数组零元素
  6. 1.4 极限的运算法则
  7. 使用Arduino和DS12C887芯片制作电子时钟(附Arduino源代码)
  8. LabVIEW开发太阳能测测系统
  9. JDBC增删改查练习案例
  10. MT4电脑版软件下载前后有哪些注意事项?