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

本文共 522 字,大约阅读时间需要 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);

转载于:https://www.cnblogs.com/zfyouxi/p/3802496.html

你可能感兴趣的文章
大处着眼,小处着手
查看>>
PUSH到git分支代码不自动更新的问题
查看>>
leetcode 16:最接近的三数之和
查看>>
[Lintcode] Partition List
查看>>
QGIS练手 - 标注
查看>>
安装指定版本的minikube
查看>>
Linux_C++内存分配方式详解——堆、栈、自由存储区、全局/静态存储区和常量存储区...
查看>>
Django展示第一个网页
查看>>
webapi请求返回{"$id":"1","Message":"请求的资源不支持 http 方法“GET”。"}
查看>>
网络对抗技术 实验二
查看>>
微信公众号自定义菜单
查看>>
代理模式-JDK Proxy(Java实现)
查看>>
Css 切换
查看>>
swift语言
查看>>
source 命令
查看>>
luogu P4568 [JLOI2011]飞行路线
查看>>
[Matlab]椭圆滤波器设计:低通、高通、带通和带阻
查看>>
flask-sqlalchemy
查看>>
解决 hibernate cannot define positional parameter after any named parameters have been defined
查看>>
CentOS7忘记root密码
查看>>