ImageVerifierCode 换一换
格式:DOC , 页数:4 ,大小:31.50KB ,
资源ID:3551927      下载积分:20 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-3551927.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Linux串口vmin和_vtime详解.doc)为本站会员(hw****26)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

Linux串口vmin和_vtime详解.doc

1、Linux 串口 vmin 和_vtime 详解例子: int fd;char *a =“/dev/tty“;struct termios tty,savetty;fd=open(a,O_RDONLY|O_NONBLOCK);tcgetattr(fd,savetty=tty;tty.c_lflagtty.c_ccVMIN=0; VMINtcsetattr(fd,TCSAFLUSH,tcsetattr(fd,TCSAFLUSH,close(fd);read()函数行为的控制;它们是VMIN和VTIME 。)这些索引名字经常被提及的方式会让人以为它们是实在的变量,比如“设置VMIN 为 1” 其实

2、意味着 “设置 c_ccVMIN为 1”。这种简写是有用的并且只是偶尔引起误会。c_cc的很多变量位置只有当其它标志被设定时才会用到。只有ICANON被设置,才用到以下变量:VEOF, VEOL,VERASE ,VKILL(如果定义了而且IEXTEN被设定,那么VEOL2,VSTATUS和VWERASE也用到)只有ISIG被设置,才用到以下变量:VINTR,VQUIT ,VSUSP(如果定义了而且IEXTEN被设定,那么VDSUSP也用到 )只有IXON 或IXOFF被设置,才用到以下变量:VSTOP,VSTART只有ICANON被取消,才用到以下变量:VMIN,VTIME不同系统实现会定义增

3、加的c_cc变量。谨慎的做法是在设定你希望使用的值以前,使用_POSIX_VDISABLE初始化这些变量(常量NCCS提供这个数组的大小)VMIN和VTIME(根据不同的实现方法,它们有可能和 VEOF和VEOL分享相同两个变量)具有以下含义。 VTIME的值(如果不为 0)总是被解释为以十分之一秒为单位的计时器)(译者注:VTIME 变量是一个字节长,所以 1 表示 0.1 秒,最大为 255,表示 25.5 秒)*c_ccVMIN 0, c_ccVTIME 0只要输入已经有 VMIN 字节长,或者输入至少有一个字符而在读取最后一个字符之前 VTIME 已经过期,或者被信号中断,read()

4、将返回。*c_ccVMIN 0, c_ccVTIME = 0只要输入已经有 VMIN 字节长,或者被信号中断,read()将返回。否则,将无限等待下去。*c_ccVMIN = 0, c_ccVTIME 0只要有输入read()就返回;如果 VTIME 过期却没有数据,它会返回没有读到字符。(这和调制解调器挂断时的文件结束标志有一点冲突;使用 1 作为 VMIN,调用alarm()或select()函数并给定超时参数可以避免这个问题。)*c_ccVMIN = 0, c_ccVTIME = 0read()总是立刻返回;如果没有数据则返回没有读到字符。(与上面的问题相同)其中 cc_t c_line

5、 只有在一些特殊的系统程序 (比如,设置通过 tty 设备来通信的网络协议) 中才会用。在数组 c_cc 中有两个下标 (VTIME 和 VMIN)对应的元素不是控制符,并且只是在原始模式下有效。只有在原始模式下,他们决定了 read()函数在什么时候返回。在标准模式下,除非设置了 O_NONBLOCK 选项,否则只有当遇到文件结束符或各行的字符都已经编辑完毕后才返回。控制符 VTIME 和 VMIN 之间有着复杂的关系。VTIME 定义要求等待的零到几百毫秒的时间量(通常是一个 8 位的 unsigned char 变量,取值不能大于 cc_t)。VMIN 定义了要求等待的最小字节数(不是要

6、求读的字节数 read()的第三个参数才是指定要求读的最大字节数 ),这个字节数可能是 0。l 如果 VTIME 取 0,VMIN 定义了要求等待读取的最小字节数。函数 read()只有在读取了VMIN 个字节的数据或者收到一个信号的时候才返回。l 如果 VMIN 取 0,VTIME 定义了即使没有数据可以读取,read()函数返回前也要等待几百毫秒的时间量。这时,read()函数不需要像其通常情况那样要遇到一个文件结束标志才返回0。l 如果 VTIME 和 VMIN 都不取 0,VTIME 定义的是当接收到第一个字节的数据后开始计算等待的时间量。如果当调用 read 函数时可以得到数据,计时

7、器马上开始计时。如果当调用read 函数时还没有任何数据可读,则等接收到第一个字节的数据后,计时器开始计时。函数 read 可能会在读取到 VMIN 个字节的数据后返回,也可能在计时完毕后返回,这主要取决于哪个条件首先实现。不过函数至少会读取到一个字节的数据,因为计时器是在读取到第一个数据时开始计时的。l 如果 VTIME 和 VMIN 都取 0,即使读取不到任何数据,函数 read 也会立即返回。同时,返回值 0 表示 read 函数不需要等待文件结束标志就返回了。怎样知道我的系统有多少存储器容量? = 这是另一个经常未回答的问题 。在多数情况下,你不该试图去找到答案. 如果你必需得到答案,

8、问题的答案通常是有的,但非常依赖于不同的操作系统。 例如,在 Solaris 中,可以用 *sysconf(_SC_PHYS_PAGES) 和 *sysconf(_SC_PAGESIZE); 在 FreeBSD 中,可以用*sysctl(); 在 Linux 中可以通过读取并处理 */proc/meminfo得到 (使用该文件时需小心你的程序,它要接受历史上任何不同合法格式). 其它的操作 系统有各自的方式,我也没有意识到更多可移植的方法。 在 HP-UX(9 版和 10 版)中,可以使用如下的代码 : struct pst_static pst; if (pstat_getstatic( printf(“Phys Pages: %lun“, pst.physical_memory);

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。