博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于 ioctl 的 FIONREAD 參数
阅读量:6716 次
发布时间:2019-06-25

本文共 471 字,大约阅读时间需要 1 分钟。

 ioctl 是用来设置硬件控制寄存器,或者读取硬件状态寄存器的数值之类的。而read,write 是把数据丢入缓冲区,硬件的驱动从缓冲区读取数据一个个发送或者把接收的数据送入缓冲区。

 ioctl(keyFd, FIONREAD, &b)

得到缓冲区里有多少字节要被读取,然后将字节数放入b里面。

接下来就能够用read了。

read(keyFd, &b, sizeof(b))

清单 - 读取串行port输入缓冲区中的字节数 

#include <unistd.h> 
#include <termios.h> 
int fd; 
int bytes; 
ioctl(fd, FIONREAD, &bytes);  

=================================

FIONREAD,就是返回緩衝區有多少字節。
輸入有個輸入緩衝區,用
ioctl(0,FIONREAD,&nread);

能得到緩衝區裡面有多少字節要被讀取。值放在 nread裡面了
然後就能够 read 了。nread = read(0,buffer,nread);

转载地址:http://rskmo.baihongyu.com/

你可能感兴趣的文章
.Net额外小工具
查看>>
【转】Eclipse的启动问题【an error has occurred see the log file】
查看>>
一款纯css3实现的条纹加载条
查看>>
ADF_Advanced ADF系列1_Fusion应用的客制和个性化(Part1)
查看>>
multipart/form-data和application/x-www-form-urlencoded的区别
查看>>
[LeetCode] Reorder List 链表重排序
查看>>
[总结]文件传输模型之文件中转
查看>>
jQuery(一)引入
查看>>
Facebook内部分享:26个高效工作的小技巧
查看>>
jstack和线程dump分析
查看>>
NETSH WINSOCK RESET这条命令的含义和作用?
查看>>
SQL批量更新数据库中所有用户数据表中字段类型为tinyint为int
查看>>
第一次使用Android Studio时你应该知道的一切配置(二):新建一个属于自己的工程并安装Genymotion模拟器...
查看>>
AtomicInteger简介
查看>>
(转)解决ScrollView嵌套ListView或者GridView导致只显示一行的方法
查看>>
html5 -- audio标签
查看>>
DNG格式解析
查看>>
Windows 下搭建LDAP服务器
查看>>
2015年第8本(英文第7本):the city of ember 微光城市
查看>>
FZU操作系统课程实验 实验一
查看>>