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/gcczhongduan/p/4290911.html

关于 ioctl 的 FIONREAD 參数相关推荐

  1. ioctl之FIONREAD

    在学习ioctl 时常常跟 read, write 混淆.其实 ioctl 是用来设置硬件控制寄存器,或者读取硬件状态寄存器的数值之类的. 而read,write 是把数据丢入缓冲区,硬件的驱动从缓冲 ...

  2. 关于 ioctl 的 FIONREAD 参数

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

  3. ioctl与FIONREAD

    在学习ioctl 时常常跟 read, write 混淆.其实 ioctl 是用来设置硬件控制寄存器,或者读取硬件状态寄存器的数值之类的. 而read,write 是把数据丢入缓冲区,硬件的驱动从缓冲 ...

  4. linux_c之ioctl的FIONREAD参数

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

  5. 具体解释可变參数列表

    可变參数   至少有一个參数 比如:void add(int a,- ){} 例题  模拟printf()函数 #include <stdio.h> #include <stdarg ...

  6. 使用JDBC改变Oracle的session參数 NLS_DATE_FORMAT

    近期项目除了一个问题,场景大概是这种,项目在国外开发.在项目开发过程中使用了大量的Oracle函数TO_DATE,可是开发者没有写第二个參数. 所以项目在国外的server上能够正常执行.但是在国内的 ...

  7. C# 多线程參数传递

    1.通过实体类来传递(能够传递多个參数与获取返回值),demo例如以下: 须要在线程中调用的函数: namespace ThreadParameterDemo {public class Functi ...

  8. TVS參数具体解释及选型应用

    一.首先了解TVS管的參数,我们以littelfuse的5.0SMDJ系列为例. 图1 图2 最大峰值脉冲功率 Maximum Peak Pulse Power Pppm峰值脉冲功率为ESD器件上瞬间 ...

  9. JVM经常使用的调优參数

    -Xms512m -Xmx1024m -XX:MaxPermSize=1204m -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+ ...

最新文章

  1. vue垂直布局_前端页面布局中水平、垂直居中问题
  2. MySQL笔记12:C语言访问MYSQL数据库的完整的代码例子
  3. 视图解析jstlView支持便捷的国际化功能
  4. Swift之深入解析Key Paths的功能与应用
  5. tensorflow tf.train.batch()
  6. “前”方有坑,绕道而行(一)-- H5 CSS
  7. 从控件开发的角度看几个editor控件,Freetextbox,radtoolbar,abouteditor,cuteeditor
  8. 分布式ELK日志采集系统
  9. 分类算法python程序_分类算法——k最近邻算法(Python实现)(文末附工程源代码)...
  10. 微软警告:Office 已遭IE RCE 新0day 攻击
  11. anaconda 创建,激活,退出,删除环境
  12. WritableWorkbook 详细用例 (转)
  13. android dts播放器下载,安卓dts音效apk安装包
  14. 博观而约取,厚积而薄发
  15. Android MPAndroidChart之柱状图BarChart
  16. phpnow升级mysql版本_phpnow1.5.6-1升级phpmyadmin,php及mysql版本
  17. 实现AlphaGo(二):快速构建棋盘和围棋规则
  18. 桌面上计算机图标老是自动删除,win10系统总是自动删除桌面快捷方式的处理方案...
  19. 【loj10064】黑暗城堡
  20. kotlin作用域函数let run whith apply also 的区别takeIf 的用法

热门文章

  1. c语言清屏不清菜单,关于c清屏的问题
  2. 常用的电源防反接电路
  3. 二 还款计划如何生成
  4. python如何用macd选股_Python Finance:如何使用macd指标进行信号策略?
  5. matlab 数组差分,matlab中计算三维数组的差分
  6. C语言人脸识别——翔云平台调用(含wget安装)
  7. 北京大学董豪:招具身智能、智能机器人、计算机视觉科研实习生
  8. 面向计算思维培养的PBL教学模式设计以模式识别课程为例
  9. 对JSON数据进行排序
  10. 使用C#对MySQL进行操作