【Linux】中多路转接之poll
来源:互联网 发布:fanuc pmc编程说明书 编辑:程序博客网 时间:2024/05/01 06:47
poll的简介:
poll是select服务器的一个优化,pollfd结构包含了要监视的event和发⽣的event,不再使用select“参数-值”传递的方式。
同时,pollfd并没有最大数量限制(但是数量过大后性能也是会下降)。 和select函数⼀样,poll返回后,需要轮询pollfd来获取就绪的描述符。
三个文件描述符:
epoll_creat:创建epoll模型,红黑树,就绪队列
epoll_ctl:管理epoll模型,管理红黑树,注册所需的就绪事件
epoll_wait:用来等待epoll模型,查找就绪队列
poll的 优点:
1,poll服务器,处理文件描述符的个数上面没有上限
2,poll将输入参数和输出参数进行了分离,没有必要在每一次的调用时进行设定
poll使用的是指针来实现:
1,poll是一个数组,作为输入输出函数
2,fd作为返回值,该文件描述符上面发生了什么
3,为0 非阻塞,大于0 的数字,等待多长时间,为-1 则永远进行等待
代码的编写:
#include<stdio.h>#include<poll.h>int main(){struct pollfd fds;fds.fd = 0;fds.events = POLLIN;fds.revents = 0;int timeout = -1;while(1){stdin(poll(&fds,1,timeout));case 0:pritnf("timeout...");break;case -1:pritnf("poll");break;default:{char buf=[1024];if(fds.revents&POLLIN){ssize_t s = read(fds,fd,buf,sizeof(buf));if(s>0){buf[s] = 0;printf("echo %s\n",buf);}}}break;}}
阅读全文
0 0
- 【Linux】中多路转接之poll
- Linux—I/O多路转接之poll
- 【Linux】I/O多路转接poll
- 多路转接模型之poll
- I/O多路转接之poll
- I/O多路转接之poll
- I/O多路转接之poll
- I/O多路转接之poll
- I/O多路转接之poll
- I/O多路转接之poll
- I/O多路转接之poll
- I/O多路转接之poll
- I/O多路转接之poll
- 多路转接服务器之poll
- Linux: I/O多路转接之poll(有图有代码有真相!!!)
- Linux【网络编程】——I/O多路转接之Poll服务器
- Linux下高级I/O多路转接之poll服务器
- Linux I/O多路转接----poll模型
- (转载)Java开发达人必备的11个技术网站
- C4
- 编译c++程序x64/x86 运行出现 应用程序无法正常启动0xc000007b_学习笔记
- linux在下软件安装-jdk和tomcat安装
- Python :字符流中第一个不重复的字符
- 【Linux】中多路转接之poll
- ios之导航渐变---/导航透明/隐藏导航栏以及手势返回遇到的问题,状态栏
- C# 日期格式化
- IO流
- 51Nod X^2 Mod P
- python_函数(二)
- CART(Classification And Regression Tree)算法原理详解
- UDP协议
- 适配器模式