在mtd-util的flash_eraseall中发现这样的用法:
----------------------------------------------------------------
#define MEMGETINFO              _IOR('M', 1, struct mtd_info_user)
......
ioctl(fd, MEMGETINFO, &meminfo)
----------------------------------------------------------------
找了一下解释如下:
对于系统支持设备的ioctl号,你可以在/usr/include下面的头文件中找到,对于你自己的设备,如果需要使用ioctl接口,则需要定义自己的ioctl号。以前的2.4中有个问题是,大家都随便定义自己的ioctl号,造成很大可能性的重复性。一个坏处是难以管理,另外一个是容易造成错误,例如如果用户本来希望打开一个串口设备,结果通过open打开了网口,如果串口的某个ioctl号正好是网口的关闭操作,这样就会造成错误。在2.6里面,你定义自己的ioctl号最好使用_IO,   _IOR,   _IOW和_IORW来定义,这些宏考虑了第三个参数的长度,设备的magic number,以及操作的方向等,避免了2.4中的问题

参考文档:
http://topic.csdn.net/t/20040930/14/3421464.html

_IO,_IOR,_IOW和_IORW的含义相关推荐

  1. IO,_IOR,_IOW和_IORW的含义

    在mtd-util的flash_eraseall中发现这样的用法: ---------------------------------------------------------------- # ...

  2. linux 内核驱动编程 简单例子 与_IO, _IOR, _IOW, _IOWR 宏解析

    一._IO, _IOR, _IOW, _IOWR 宏的用法与解析 在驱动程序里, ioctl() 函数上传送的变量 cmd 是应用程序用于区别设备驱动程序请求处理内容的值.cmd除了可区别数字外,还包 ...

  3. _IO,_IOR,_IOW,_IOWR

    _IO,_IOR,_IOW,_IOWR 宏的用法与解析< DOCTYPE HTML PUBLIC -WCDTD HTML TransitionalEN> _IO, _IOR, _IOW, ...

  4. _IO, _IOR, _IOW, _IOWR 宏用法解析

    _IO, _IOR, _IOW, _IOWR 宏的用法与解析 在驱动程序里, ioctl() 函数上传送的变量 cmd 是应用程序用于区别设备驱动程序请求处理内容的值.cmd除了可区别数字外,还包含有 ...

  5. 转:linux内核驱动中_IO, _IOR, _IOW, _IOWR 宏的用法与解析

    在驱动程序里, ioctl() 函数上传送的变量 cmd 是应用程序用于区别设备驱动程序请求处理内容的值.cmd除了可区别数字外,还包含有助于处理的几种相应信息. cmd的大小为 32位,共分 4 个 ...

  6. 构造IOCTL命令的学习心得-----_IO, _IOR, _IOW, _IOWR 幻数的理解

    在编写ioctl代码之前,需要选择对应不同命令的编号.为了防止对错误的设备使用正确的命令,命令号应该在系统范围内唯一,这种错误匹配并不是不会发生,程序可能发现自己正在试图对FIFO和audio等这类非 ...

  7. 构造IOCTL命令的学习心得-----_IO, _IOR, _IOW, _IOWR 幻数的理解

    在编写ioctl代码之前,需要选择对应不同命令的编号.为了防止对错误的设备使用正确的命令,命令号应该在系统范围内唯一,这种错误匹配并不是不会发生,程序可能发现自己正在试图对FIFO和audio等这类非 ...

  8. 新内核版本ioctl的变化 _IO, _IOR, _IOW, _IOWR 幻数的理解

    kernel 2.6.35 及之前的版本中struct file_operations 一共有3个ioctl : ioctl,unlocked_ioctl和compat_ioctl 现在只有unloc ...

  9. Linux内核中_IO,_IOR,_IOW,_IOWR宏的用法与解析

    在驱动程序里, ioctl()函数上传送的变量 cmd是应用程序用于区别设备驱动程序请求处理内容的值.cmd除了可区别数字外,还包含有助于处理的几种相应信息. cmd的大小为 32位,共分 4 个域: ...

最新文章

  1. 常见采集脑电信号的四种技术
  2. MPU6050开发 -- 在 C52 单片机上测试
  3. js 实现简单的轮询
  4. python答疑的作用_不学Python之集中答疑(5)
  5. iterm2一键登陆服务器(门神权限不用每次都输密码进行验证)
  6. opencv 识别机车
  7. 学习记录—HTML标签
  8. 企业怎样才能开除一个股东?
  9. IoC、DI、AOP
  10. 应用案例 | 从Storm到Flink,有赞五年实时计算效率提升实践
  11. logstash nginx error access 日志处理
  12. 中职学校计算机教学中,探析中职学校计算机教学中的一些体会和思考.doc
  13. 盘点服装进销存软件和生产进销存软件排行榜
  14. [ 资料分享 ] Vue 源码分析与讲解 - 附下载地址
  15. UEFI——PCI/PCIe
  16. 小小粉刷匠(区间dp)
  17. 数据库学习-关于存在量词exists的理解
  18. 用BVP一比一还原自如客APP裸眼3D效果(Android原生)
  19. 2021-09-26 WPF上位机 45-关键帧动画
  20. php代码访问记录系统,对某PHP发卡系统代码审计记录

热门文章

  1. 全目标结构化视觉识别,视频大数据分析
  2. java 文件压缩zip【两种方式】
  3. 写给未来的入职为程序员的人工智能专业的高考生的选专业看法
  4. vscode设置#define定义宏
  5. 生物信息学|用于预测药物-药物相互作用事件的多模态深度学习框架
  6. 计算机主板最新芯片组品牌,最新的主板芯片组排行榜【详解】
  7. 2018_MCM_E题翻译_气候变化如何影响地区不稳定
  8. Ansys Zemax / SPEOS | 光源文件转换器
  9. 微信小程序各种酷炫动画
  10. ted学习方法_视世界为1000人,我是如何学习内容策略的TED设计系统的