select与poll函数介绍

在所有依从POSIX的平台上,select函数使我们可以执行I/O多路转接。传向select的参数告诉内核:

1)我们所关心的描述符

2)对于每个描述符我们所关心的状态(是否读一个给定的描述符?是否想写一个给定的描述符?是否关心一个描述符的异常状态?)

3)愿意等待多长时间(可以永远等待,也可以等待一个固定量时间,或完全不等待)

从select返回时,内核告诉我们:

1)已准备好的描述符的数量

2)对于读、写或异常这三个状态中的每一个,哪些描述符已准备好

使用这些返回信息,就可以调用相应的I/O函数(一般是read或write),并且确知该函数不会阻塞。

函数原型:

#include <sys/select.h>

int select(int maxfdp1, fd_set *restrict readfds, fd_set *restrict writefds, fd_set *restrict exceptfds, struct timeval *restrict tvptr);

返回值:准备就绪的描述符数,若超时则返回0,若出错则返回-1

最新文章

  1. xml序列化方式
  2. arcgis android 图上记录gps轨迹
  3. pictures of you
  4. Linq to sql-存储过程
  5. JdbcTemplate与事务
  6. web网页的表单排版利器--960css
  7. win7 64位。未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序
  8. Python笔记:使用pywin32处理excel文件
  9. yoeman构建Asp.net core项目并且实现分层
  10. r语言之散点图绘制及参数
  11. 使用SQL Server视图的优缺点
  12. prestashop 基本设置
  13. JavaScript 面向对象(一)
  14. svn命令行便捷代码
  15. SNS团队Beta阶段第三次站立会议(2017.05.24)
  16. 老司机带你玩转web service
  17. 常用vi命令
  18. Ansible基础认识及安装使用详解(week5_day1_part1)--技术流ken
  19. STM32 F103 F407 F429 F767对比图
  20. Linux期末复习题

热门文章

  1. HttpSession的线程安全问题及注意事项
  2. myeclipse的debug模式中breakpoint窗口怎么调出来
  3. Bellman算法
  4. 查看并更改mysql编码
  5. PHP下的命令行执行 php -S localhost -t public
  6. eclipse 代码自动提示
  7. 2012年第三届蓝桥杯C/C++程序设计本科B组决赛
  8. poj 2513 Colored Sticks trie树+欧拉图+并查集
  9. 16.检查是否为BST
  10. Esfog_UnityShader教程_逐帧动画