Linux termios 串口编程之 VTIME与VMIN
来源:互联网 发布:vc6.0 mfc编程入门 编辑:程序博客网 时间:2024/05/17 09:14
在Linux TTY编程时会涉及到 termios 结构,其中c_cc数组里面,有 VTIME 和 VMIN 下标。关于他们的使用经常令人迷惑,查阅了不少博客,上面的讲解也有不少误区。
在这里重新对这二者关系进行介绍。结合实验会令人记忆更深刻。
VTIME 和 VMIN 的值只能用于非标准模式,两者结合起来共同控制对输入的读取。此外,两者结合使用还能控制在一个程序试图读取与一个终端关联的文件描述符时将发生的情况。
两者结合使用分为下面4种情况:
- VMIN = 0 和 VTIME = 0 :在这种情况下,read 调用总是立刻返回。如果有等待处理的字符,read 就会立刻返回;如果没有字符等待处理,read 调用返回0,并且不读取任何字符;
- VMIN = 0 和 VTIME > 0 :在这种情况下,只要有字符可以处理或者是经过 VTIME 个十分之一秒的时间间隔,read 调用就返回。如果因为超时而未读到任何字符,read 返回0,否则 read 返回读取的字符数目。
- VMIN > 0 和 VTIME = 0 :在这种情况下,read 调用将一直等待,直到有 MIN 个字符可以读取时才返回,返回值是读取的字符数量。到达文件尾时返回0。
- VMIN > 0 和 VTIME > 0 :在这种情况下,当 read 被调用时,它会等待接收一个字符。在接收到第一个字符及后续的每个字符后,一个字符间隔定时器被启动(如果定时器已经运行,则重启它)。当有 MIN 个字符可读或两个字符之间的时间间隔超过 TIME 个十分之一秒时,read 调用返回。这个功能可用于区分是单独按下了 Escape 键还是按下一个 Escape 键开始的功能组合键。但要注意的是,网络通信或处理器的高负载将使得类似这样的定时器失去作用。
通过设置非标准模式与使用的 VMIN 和 VTIME 值,程序可以逐个字符地处理输入。
3 0
- Linux termios 串口编程之 VTIME与VMIN
- linux termios 之 VMIN VTIME
- linux 下串口编程VTIME和VMIN的设置
- linux下串口编程VTIME和VMIN参数的用法
- linux 下串口编程VTIME和VMIN的设置
- linux 下串口编程VTIME和VMIN的设置
- 串口编程的VTIME与VMIN的配置
- Linux下串口参数VTIME和VMIN
- Linux下串口参数VTIME和VMIN
- 串口VMIN VTIME 详解
- 串口VMIN VTIME 详解
- Linux 窗口编程中VMIN VTIME设置
- Linux下串口参数VTIME和VMIN的用法
- Linux串口通信VTIME和VMIN的设置
- Linux串口c_cc[VTIME]和c_cc[VMIN]属性设置的作用
- linux串口编程termios详解
- Linux 串口编程<二> 深入了解 termios
- [Linux]termios-serial develop(串口编程)
- null!="" 常用的字符串非空判断
- 电商网站架构
- 我的Java设计模式学习笔记(2)- Bridge模式
- 今天第一天开通博客
- C#程序加壳
- Linux termios 串口编程之 VTIME与VMIN
- 安卓入门
- 【Python爬虫7】验证码处理
- 字段验证
- Dynamics CRM 2015-Form之添加Ribbon Button
- FillChar()
- 不用加减乘除做加法
- RSA 加解密算法详解
- 深入浅出CUDA编程