关于 ioctl 的 FIONREAD 参数[通俗易懂]

关于 ioctl 的 FIONREAD 参数[通俗易懂]ioctl是用来设置硬件控制寄存器,或者读取硬件状态寄存器的数值之类的。而read,write是把数据丢入缓冲区,硬件的驱动从缓冲区读取数据一个个发送或者把接收的数据送入缓冲区。 ioctl(keyFd,FIONREAD,&b)得到缓冲区里有多少字节要被读取,然后将字节数放入b里面。接下来就可以用read了。read(keyFd,&b,sizeof(b))清

大家好,又见面了,我是你们的朋友全栈君。 ioctl 是用来设置硬件控制寄存器,或者读取硬件状态寄存器的数值之类的。而read,write 是把数据丢入缓冲区,硬件的驱动从缓冲区读取数据一个个发送或者把接收的数据送入缓冲区。

 ioctl(keyFd, FIONREAD, &b)

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

接下来就可以用read了。

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

清单 – 读取串行端口输入缓冲区中的字节数 
#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://javaforall.net/163626.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 炉石传说怎么改服务器(炉石firestone怎么用)

    魔兽世界中,炉石是一个相当关键的道具,因为玩家在深入野外探险以后,如果要原路返回就太耗时间了,因此炉石很重要,那么炉石怎么用呢,下面游戏吧小编为大家带来介绍。魔兽世界炉石怎么用魔兽世界中炉石只需要玩家右键点击炉石就能使用,可以直接在背包里点,或者拖到快捷键上用快捷键点。炉石冷却时间为半个小时,使用炉石需要一定的施法时间,过程中玩家的施法动作像在双手搓东西,因此也叫搓炉石。玩家需要注意的是,炉石传送…

    2022年4月16日
    150
  • Q学习(Q learning) 强化学习的简单例子 Matlab实现 可视化「建议收藏」

    Q学习(Q learning) 强化学习的简单例子 Matlab实现 可视化「建议收藏」参考链接:https://blog.csdn.net/Maggie_zhangxin/article/details/73481417实现的内容很简单,存为.m文件可以直接在matlab上运行,就是利用Q学习(Qlearning)完成自主路径寻优简单示例,并进行可视化,Q学习部分参考了如上链接中的内容,供大家交流学习使用,请多提宝贵意见如图为最终路径,红色方框代表机器人,绿色区域代表障碍…

    2022年10月3日
    4
  • Pycharm提示 Unresolved reference 的解决办法[通俗易懂]

    Pycharm提示 Unresolved reference 的解决办法[通俗易懂]有时候a.py和b.py在一个目录里面,但是在a.py种写importb有时会提示Unresolvedreference,Pycharm常见,解决办法是setting->Project->Projectstructure->Source,点击要加入的文件夹.注意:添加成功之后该文件见的图标会编程蓝色(加入之前是淡蓝色中间一个圆圈)如上图所示。…

    2022年8月27日
    5
  • 计算机方向的一些顶级会议和期刊—Top Conferences and Journals in Computer Science

    计算机方向的一些顶级会议和期刊—Top Conferences and Journals in Computer Science

    2021年8月15日
    70
  • 使用Ubuntu16.04搭建CMS服务器

    使用Ubuntu16.04搭建CMS服务器以此为笔记,方便后面查阅。以下是正文。注:使用root帐号或每条shell命令前加sudo.1. 安装Ubuntu16.04版本。2. 安装后,进入系统,打开终端,开始使用以下shell命令进行搭建。3.apt-getupdate4.apt-getupgrade-y5.添加ppa软件源:     1).apt-getinstall-ypython…

    2022年10月19日
    3
  • 暴力破解工具-hydra使用「建议收藏」

    一、hydra简介:ydra(九头蛇),分布式任务处理系统,由社交标签服务提供商AddThis六年前开发,现在已得到Apache的开源许可,就像Hadoop一样,只是还没有Hadoop那样的知名度和声势。Hydra的创造者称,该“多头”平台非常擅长处理一些大的数据任务——对非常大的数据集进行实时处理。hydra是一款世界顶级密码暴力破解工具,支持几乎所有的协议的在线破解,功能强大,其密码…

    2022年4月9日
    307

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号