系统编程高级IO(2)

系统编程高级IO(2)

设置阻塞和非阻塞,封装成函数


系统编程高级IO(2)

num的读设置为非阻塞,num1的读设置为阻塞。

系统编程高级IO(2)

输入45,就直接输入到num1上啦。

想要输入num方法一:

系统编程高级IO(2)


select函数的基本操作

系统编程高级IO(2)

系统编程高级IO(2)

系统编程高级IO(2)

select与sleep的区别是,select只要在规定时间内把数据输入,则可以直接进行下一步操作,而sleep接收到数据输入后,还需要把剩余的sleep设定好的时间等待完,才进行下一步操作

系统编程高级IO(2) 系统编程高级IO(2)

1.先设置一个fd_set rdfds

2.再用FD_ZERO将rdfds清空

3.再将0的文件描述符放入rdfds中

4.用struct timeval tv将最长等待时间的时间设置好,tv_sec是秒级别设置,tv_usec是纳秒级别设置

5.time小于0代表select出错

6.time大于0代表select成功

7.time等于0代表select运行超时

系统编程高级IO(2)

如果在两秒内没有输入任何值,则输出timeout,在两秒内输入了12则输出12


poll的使用方法:

系统编程高级IO(2) 系统编程高级IO(2)

系统编程高级IO(2)系统编程高级IO(2)

系统编程高级IO(2) 

输入3后,马上返回3

 

上一篇:go实现面向对象特性


下一篇:9.线程休眠