- 4
- 0
- 约6.16千字
- 约 6页
- 2017-05-29 发布于天津
- 举报
Iinux中select函数的使用
阻塞式I/O 编程有两个特点:
一、如果一个发现I\O 有输入,读取的过程中,另外一个也有了输入,这时候不会产生任何
反应,也就是需要你的程序语句去select 的时候才知道有数据输入。
二、程序去 select 的时候,如果没有数据输入,程序会一直等待,直到有数据位置,也就
是程序中无需循环和sleep 。
Select 在Socket 编程中还是比较重要的,可是对于初学Socket 的人来说都不太爱用Select
写程序,他们只是习惯写诸如connect、accept、recv 或 recvfrom 这样的阻塞程序(所谓
阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,
如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使用Select 就可以完
成非阻塞(所谓非阻塞方式 non-block,就是进程或线程执行此函数时不必非要等待事件
的发生,一旦执行肯定返回,以返回值的不同来反映函数的执行情况,如果事件发生则与
阻塞方式相同,若事件没有发生则返回一个代码来告知事件未发生,而进程或线程继续执
行,所以效率较高)方式工作的程序,它能够监视我们需要监视的文件描述符的变化情况——
读写或是异常。下面详细介绍一下!
原创力文档

文档评论(0)