Linux设备驱动程序中常用的ioctl方法和read/write方法的异同点

2023-11-06

ioctl是iocontrol的缩写,就是IO控制
行为上:
简单来说,如果你在写驱动程序时zhi候,碰到一些IO操作,在逻辑上不能归类到read,不能归类到write,那就可以认为是ioctl的部分。
read和write应该是写入和读出数据的,应该是作为单纯的数据交换的方式来处理。而ioctl则是控制read和write一些选项的。比如:你做了一个通用的读写IO端口的驱动模块。read和write是从端口读写数据的,但是更改读写的端口,这个操作应该如何处理呢?显然用ioctl来实现比较合理。比如你的read和write是可以阻塞的,或者不能阻塞的,或者对设备文件的读写是可以并发的,或者是不可以并发的,这些都可以写成可以用ioctl来配置的情况。后面为了可以用ioctl来实现模块不同的IO特点。
参数上,ioctl的一般参数格式就是命令字(常量)+命令参数的方式。
read和write的参数格式都是数据缓冲区+数据目的地指针+长度。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux设备驱动程序中常用的ioctl方法和read/write方法的异同点 的相关文章

随机推荐

  • 解锁云原生虚拟数仓 PieCloudDB Database 『第一期』

    拓数派旗下旗舰产品 PieCloudDB 采用领先的数仓虚拟化技术 为企业构建高安全 高可靠 高在线 坚如磐石 的云原生虚拟数仓 本系列文章将为大家介绍 PieCloudDB Database 最新动态和全新功能 相关视频 链接 产品试用
  • sqli-labs (less18-less19)

    less 18 头部注入 user agent 这里不补充http头的知识了 直接看源码可以看到 uname和passwd都有check input函数检查 所以直接这两个参数注入是不行的了 然后再继续看下去 有句sql语句有ip addr
  • 【多模态】12、MM-OVOD

    文章目录 一 背景 二 方法 2 1 框架总览 2 1 1 Text based classifiers from language descriptions 2 1 2 Vision based Classifiers from Imag
  • 用python开发一个炸金花小游戏

    众所周知 扑克牌可谓是居家旅行 桌面交友的必备道具 今天我们用 Python 来实现一个类似炸金花的扑克牌小游戏 先来看一下基本的游戏规则 炸 诈 金花又叫三张牌 是在全国广泛流传的一种民间多人纸牌游戏 游戏使用一副除去大小王的扑克牌 共
  • Java面经

    说在前面 自己为了准备面试Java后端开发准备的面经 部分有摘自其他网站 还有平时面试总结的 分享一下 Java开发基础 0 抽象类和接口的区别 语法 构造器 抽象类可以 接口不可以 具体方法 抽象类可以有 接口全是抽象方法 但在1 8以后
  • word论文排版和写作07:基于Zotero的参考文献格式管理

    写在前面 参考文献的样式管理应该算得上是word相较于latex的一大劣势了 如果没有特别要求的话 直接使用谷歌学术或者百度学术的几个标准的引用格式就可以 然而 大部分投稿的期刊或者会议总会有他们自己格式要求 使用latex只需要统一使用b
  • 时钟抖动(Jitter)的基本概念 【转载】

    时钟抖动 Jitter 的基本概念 李倩 发表于 2018 03 13 10 21 08 电子说 随着通信系统中的时钟速率迈入GHz级 抖动这个在模拟设计中十分关键的因素 也开始在数字设计领域中日益得到人们的重视 在高速系统中 时钟或振荡器
  • AntDB-M数据库锁分析,不要错过!

    AntDB数据库始于2008年 在运营商的核心系统上 为全国24个省份的10亿多用户提供在线服务 具备高性能 弹性扩展 高可靠等产品特性 峰值每秒可处理百万笔通信核心交易 保障系统持续稳定运行近十年 并在通信 金融 交通 能源 物联网等行业
  • 华为7c手机怎么恢复出厂设置_华为荣耀畅玩7A/7C进recovery双清格机恢复出厂设置方法...

    华为荣耀畅玩7A 7C进recovery双清格机恢复出厂设置方法 双清操作虽然不是很复杂 但是有一部分华为荣耀畅玩7A 7C机友还是不太了解的 为了让华为荣耀畅玩7A 7C新手了解一下详细的操作方法 方便以后手机的日常使用 下面华为刷机网就
  • order by 用多个条件进行排序

    select from time order by location date 解读一下 只有在location 值相同的时候 才对第二个字段的数据进行排序 默认为asc 之后我又考虑 如果我们第一个字段希望是降序呢 测试一下 select
  • Kali - 靶系统 metasploitable2 初始化修改数据库

    原本都到了0202年了 该用3 或者更高的靶系统了 但是由于网络不通 所以找了2来凑合 常规的操作 下载系统 安装虚拟机软件 导入到虚拟机里面 修改虚拟机数据库配置文件 vi etc www mutillidae config inc 将
  • dubbo服务降级和服务容错

    什么是服务降级 当服务器压力剧增的情况下 根据实际业务情况及流量 对一些服务和页面有策略的不处理或换种简单的方式处理 从而释放服务器资源以保证核心交易正常运作或高效运作 可以通过服务降级功能临时屏蔽某个出错的非关键服务 并定义降级后的返回策
  • 把c++的函数导出为dll文件

    目录 什么是dll文件 把c 函数变为dll有什么好处 开始教程 打开Visual Studio 2022创建 调整编译器设置 创建头文件 DLL1 h 创建源文件编辑函数内容 DLL1 cpp 编译成dll文件 什么是dll文件 DLL
  • 模型训练损失,正确率绘制曲线图

    import matplotlib pyplot as plt from matplotlib pyplot import MultipleLocator 创建第一张画布 plt figure 0 绘制训练损失曲线 plt plot all
  • 快速了解链码是什么?

    链码是什么 链码也就是所谓的智能合约 智能合约是由事件驱动的 具有状态的存储和运行在区块链上的程序 它通过预置了一些条件和规则 在一定的事件下触发智能合约的执行 智能合约最终的目标是在区块上生成账本数据 也就是说所有对账本的操作都是由智能合
  • 【华为OD】

    目录 一 题目描述 二 输入描述 三 输出描述 四 题目解析 五 Java玩法 六 JavaScript玩法 一 题目描述 现在有 n 个容器服务 服务的启动可能有一定的依赖性 有些服务启动没有依赖 其 次服务自身启动加载会消耗一些时间 给
  • 编写shell脚本,判断输入的IP是否正确

    编写shell脚本 判断输入的IP是否正确 IP的规则是 n1 n2 n3 n4 其中1 bin bash checkip if echo 1 egrep q 0 9 1 3 0 9 1 3 0 9 1 3 0 9 1 3 then a e
  • 编程高手是如何炼成的?1024页Python学习教程

    有人说Python入门一个月足矣 但也仅仅是入门 要想精通甚至成为编程高手 一个月显然不够 网络上五花八门的Python教程让编程学习者挑花了眼 但大多都是强调入门和基础 无法满足更进一步的需求 要想加深自身竞争力和增加技能傍身 更高层次的
  • Python实验——tkinter 电子时钟

    实验说明 编写程序 实现如下图所示的电子时钟 要求 1 不显示标题栏 总是顶端显示 不被其他窗口覆盖 2 实时显示日期和时间 3 可以用鼠标左键按住拖动 在电子时钟上右击可以结束程序 4 拖动时透明度变大 鼠标左键抬起时恢复半透明状态 时钟
  • Linux设备驱动程序中常用的ioctl方法和read/write方法的异同点

    ioctl是iocontrol的缩写 就是IO控制 行为上 简单来说 如果你在写驱动程序时zhi候 碰到一些IO操作 在逻辑上不能归类到read 不能归类到write 那就可以认为是ioctl的部分 read和write应该是写入和读出数据