_IO,_IOR,_IOW和_IORW的含义
在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的含义相关推荐
- IO,_IOR,_IOW和_IORW的含义
在mtd-util的flash_eraseall中发现这样的用法: ---------------------------------------------------------------- # ...
- linux 内核驱动编程 简单例子 与_IO, _IOR, _IOW, _IOWR 宏解析
一._IO, _IOR, _IOW, _IOWR 宏的用法与解析 在驱动程序里, ioctl() 函数上传送的变量 cmd 是应用程序用于区别设备驱动程序请求处理内容的值.cmd除了可区别数字外,还包 ...
- _IO,_IOR,_IOW,_IOWR
_IO,_IOR,_IOW,_IOWR 宏的用法与解析< DOCTYPE HTML PUBLIC -WCDTD HTML TransitionalEN> _IO, _IOR, _IOW, ...
- _IO, _IOR, _IOW, _IOWR 宏用法解析
_IO, _IOR, _IOW, _IOWR 宏的用法与解析 在驱动程序里, ioctl() 函数上传送的变量 cmd 是应用程序用于区别设备驱动程序请求处理内容的值.cmd除了可区别数字外,还包含有 ...
- 转:linux内核驱动中_IO, _IOR, _IOW, _IOWR 宏的用法与解析
在驱动程序里, ioctl() 函数上传送的变量 cmd 是应用程序用于区别设备驱动程序请求处理内容的值.cmd除了可区别数字外,还包含有助于处理的几种相应信息. cmd的大小为 32位,共分 4 个 ...
- 构造IOCTL命令的学习心得-----_IO, _IOR, _IOW, _IOWR 幻数的理解
在编写ioctl代码之前,需要选择对应不同命令的编号.为了防止对错误的设备使用正确的命令,命令号应该在系统范围内唯一,这种错误匹配并不是不会发生,程序可能发现自己正在试图对FIFO和audio等这类非 ...
- 构造IOCTL命令的学习心得-----_IO, _IOR, _IOW, _IOWR 幻数的理解
在编写ioctl代码之前,需要选择对应不同命令的编号.为了防止对错误的设备使用正确的命令,命令号应该在系统范围内唯一,这种错误匹配并不是不会发生,程序可能发现自己正在试图对FIFO和audio等这类非 ...
- 新内核版本ioctl的变化 _IO, _IOR, _IOW, _IOWR 幻数的理解
kernel 2.6.35 及之前的版本中struct file_operations 一共有3个ioctl : ioctl,unlocked_ioctl和compat_ioctl 现在只有unloc ...
- Linux内核中_IO,_IOR,_IOW,_IOWR宏的用法与解析
在驱动程序里, ioctl()函数上传送的变量 cmd是应用程序用于区别设备驱动程序请求处理内容的值.cmd除了可区别数字外,还包含有助于处理的几种相应信息. cmd的大小为 32位,共分 4 个域: ...
最新文章
- 常见采集脑电信号的四种技术
- MPU6050开发 -- 在 C52 单片机上测试
- js 实现简单的轮询
- python答疑的作用_不学Python之集中答疑(5)
- iterm2一键登陆服务器(门神权限不用每次都输密码进行验证)
- opencv 识别机车
- 学习记录—HTML标签
- 企业怎样才能开除一个股东?
- IoC、DI、AOP
- 应用案例 | 从Storm到Flink,有赞五年实时计算效率提升实践
- logstash nginx error access 日志处理
- 中职学校计算机教学中,探析中职学校计算机教学中的一些体会和思考.doc
- 盘点服装进销存软件和生产进销存软件排行榜
- [ 资料分享 ] Vue 源码分析与讲解 - 附下载地址
- UEFI——PCI/PCIe
- 小小粉刷匠(区间dp)
- 数据库学习-关于存在量词exists的理解
- 用BVP一比一还原自如客APP裸眼3D效果(Android原生)
- 2021-09-26 WPF上位机 45-关键帧动画
- php代码访问记录系统,对某PHP发卡系统代码审计记录
热门文章
- 全目标结构化视觉识别,视频大数据分析
- java 文件压缩zip【两种方式】
- 写给未来的入职为程序员的人工智能专业的高考生的选专业看法
- vscode设置#define定义宏
- 生物信息学|用于预测药物-药物相互作用事件的多模态深度学习框架
- 计算机主板最新芯片组品牌,最新的主板芯片组排行榜【详解】
- 2018_MCM_E题翻译_气候变化如何影响地区不稳定
- Ansys Zemax / SPEOS | 光源文件转换器
- 微信小程序各种酷炫动画
- ted学习方法_视世界为1000人,我是如何学习内容策略的TED设计系统的