关于 ioctl 的 FIONREAD 參数

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);

时间: 2024-08-04 16:47:11

关于 ioctl 的 FIONREAD 參数的相关文章

java之 ------ 可变參数和卫条件

可变參数:适用于參数个数不确定.类型确定的情况,java把可变參数当做数组处理. 可变參数必须位于最后一项.当可变參数个数多于一个时,必将有一个不是最后一项,所以仅仅支持有一个可变參数. 可变參数的书写形式如: int add(int x,int ...args){  方法体 } ... 位于变量类型和变量名之间.前后有无空格都能够: 调用可变參数的方法时.编译器为该可变參数隐含创建一个数组,在方法体中以数组的形式訪问可变參数. 条件逻辑推断型的应用(模拟人工推理) /* 有人邀请A,B,C,D

nginx的 CPU參数worker_processes和worker_cpu_affinity使用说明

Nginx默认没有开启利用多核CPU,我们能够通过添加worker_cpu_affinity配置參数来充分利用多核CPU.CPU是任务处理,计算最关键的资源,CPU核越多.性能就越好. worker_cpu_affinity这个參数要结合 worker_processes来一起使用. 首先 先说 worker_processes: worker_processes指明了nginx要开启的进程数,据官方说法,一般开一个就够了,多开几个.能够降低机器io带来的影响. 一般为当前机器总cpu核心数的1

springmvc 处理lsit类型的请求參数映射成实体属性

<table align="center" cellspacing="10"> <tr> <td> 母码数目:<input type="text" name="uidCodeGenNumParamList[0].superCodeGenNum" style="width:180px;" class="textbox" maxlength=&quo

STL算法设计理念 - 函数对象和函数对象当參数和返回值

函数对象: 重载函数调用操作符的类.其对象常称为函数对象(function object),即它们是行为类似函数的对象. 一个类对象,表现出一个函数的特征,就是通过"对象名+(參数列表)"的方式使用一个类对象,假设没有上下文,全然能够把它看作一个函数对待. 这是通过重载类的operator()来实现的. "在标准库中.函数对象被广泛地使用以获得弹性".标准库中的非常多算法都能够使用函数对象或者函数来作为自定的回调行为: demo #include <iostr

【安卓开源】安卓拼图实现,数据驱动,可记录图片位置參数,希望大家有兴趣一起完好、!

简单的"拼图"实现 1.可自由显示多张图片,每张可自由移动.旋转.缩放 2.基于json的图形位置參数存储 3.手动摆放位置后,可记录位置參数至文件 兴许: 1.切换图形位置时加上渐变动画 2.眼下录入的參数为绝对參数,没有相对手机宽度做相对參数,后期完好 ... 欢迎大家一起来丰富一些有趣的功能.!

Androidclient性能參数监控

背景: 在做androidclient測试的时候.有时候须要监控cpu/mem/电量消耗/界面载入时间/流量等等指标. 于是俺们就上下求索,网友告诉我两个方案:AnotherMonitor和Emmagee,在此之前.我自己写了一个工具,下文就这几个方案做一下比較和说明. AnotherMonitor和Emmagee都是apk的形式存在的.以下是官网: https://code.google.com/p/anothermonitor/ https://github.com/NetEase/Emma

java 变长參数使用原则

1.java变长參数用...表示,如Print(String... args){  ... }; 2.假设一个调用既匹配一个固定參数方法.又匹配一个变长參数方法,则优先匹配固定參数的方法 3.假设一个调用能匹配两个及以上的变长參数方法,则出现错误--这事实上表示方法设计有问题,编译器会提示The method is ambiguous 4.方法仅仅能有一个变长參数,且必须放在參数列表的最后一个

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

一.首先了解TVS管的參数,我们以littelfuse的5.0SMDJ系列为例. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGcybGg=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" > 图1 图2 最大峰值脉冲功率 Maximum Peak Pulse Power Pppm峰值脉冲功率为ESD器件上瞬间通过的最大功率值.由最大钳位电压Vc

mysqladmin在SuSE linux系统中--sleep參数使用不准确问题

我们都知道,在MySQL中.能够使用mysqladmin命令的extended-status选项来查看MySQL的执行状态,比方获取我们经常关注的几个值: # mysqladmin -uroot -proot ext |grep "Questions\|Queries\|Innodb_rows\|Com_select \|Com_insert \|Com_update \|Com_delete " | Com_delete                               |