
Linux网络编程
文章平均质量分 77
Linux网络编程学习
Mirants
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
I/O多路复用之总结
poll() 和 select() 的区别虽然 poll() 和select() 完成相同的工作,但 poll() 调用在很多方面仍然优于 select() 调用:poll() 不需要用户计算最大文件描述符值加 1 作为参数传递给它。poll() 对于值最大的文件描述符,效率最高。试想一下,要通过 select() 监视一个值为900的文件描述符,内核需要检查每个集合中的每个位原创 2015-08-08 23:55:54 · 1208 阅读 · 0 评论 -
I/O 多路复用之 Event Poll
概述由于 poll() 和 select() 的局限,Linux 2.6内核引入了 event poll(epoll) 机制。虽然 epoll 的实现比 poll() 和 select() 要复杂得多,epoll 解决了前两个存在的基本性能问题,并增加了一些新的特性。对于poll() 和 select(),每次调用时都需要所有被监听的文件描述符列表。内核必须遍历所有被监视的文件描述原创 2015-08-08 22:36:48 · 2636 阅读 · 0 评论 -
I/O 多路复用之poll
概述poll() 系统调用是System V 的I/O多路复用的解决方案。它解决了一些 select() 的不足,不过 select() 还是被频繁的使用(还是出于习惯或可移植性的考虑)。Poll() #include int poll(struct pollfd *fds, nfds_t nfds, int timeout);select() 使用了原创 2015-08-08 14:11:35 · 883 阅读 · 0 评论 -
I/O 多路复用之select
概述Linux提供了三种 I/O 多路复用方案:select,poll和epoll。在这一篇博客里先讨论select和poll,epoll是Linux特有的高级解决方案,将在下一篇中介绍。select()select()系统调用提供了一种实现同步 I/O 多路复用的机制:#include int select (int n, fd_set原创 2015-08-08 12:40:39 · 1281 阅读 · 0 评论 -
分散/聚集 I/O(scatter-gather I/O)
概述分散/聚集 I/O是一种可以在单次系统调用中对多个缓冲区输入输出的方法,可以把多个缓冲区的数据写到单个数据流,也可以把单个数据流读到多个缓冲区中。其命名的原因在于数据会被分散到指定缓冲区向量,或者从指定缓冲区向量中聚集数据。这种输入输出方法也称为向量 I/O(vector I/O)。与之不同,标准读写系统调用(read,write)可以称为线性I/O(linear I/O)。与线性 I原创 2015-08-06 23:43:28 · 10015 阅读 · 0 评论