linux驱动系统调用ioctl()的cmd参数详解【字段划分图】
来源:互联网 发布:优化网站实例 编辑:程序博客网 时间:2024/05/16 19:46
正确的顺序应该是:
_高位_[dir-2bit][size-14bit][type-8bit][nr-8bit]_低位
按照你文章中的名字来说是:
_高位_[方向-2bit][大小-14bit][幻数-8bit][序数-8bit]_低位
证实代码如下:
unsigned int cmd = _IOC(0x3, 0x51, 0x74, 0x89);
printf("cmd is : 0x%x\n", cmd);
return 0;
打印出来的数字是:0xC0895174 正好一一对应。
我说我怎么看了linux源码的实现怎么就发现不对呢。博主你可以看下ioctl.h中的实现:
//shift分别为 30, 8, 0, 16, ,所以很明显
#define _IOC(dir,type,nr,size) \
(((dir) << _IOC_DIRSHIFT) | \
((type) << _IOC_TYPESHIFT) | \
((nr) << _IOC_NRSHIFT) | \
((size) << _IOC_SIZESHIFT))
[em:3:]
- linux驱动系统调用ioctl()的cmd参数详解【字段划分图】
- Linux驱动设计ioctl函数的cmd参数不能为2
- Linux驱动设计ioctl函数的cmd参数不能为2
- linux 系统调用---ioctl
- 开发笔记:从ioctl到linux v4l2驱动的调用
- linux 64位系统兼容32bit程序 ioctl调用cmd匹配问题解决
- 基于套接字描述符的ioctl( )系统调用详解
- [转] ioctl的命令cmd构造详解
- ioctl的命令cmd构造详解
- linux驱动—— ioctl中的cmd和_IO() , _IOR() , IOW() ,_IOWR() 以及_IOC_NR()的关系
- linux驱动程序的ioctl()函数的cmd参数不能为2
- 应用调用驱动的ioctl函数
- linux下系统调用劫持ioctl
- linux下ioctl系统调用(3)
- ioctl()函数的cmd参数是怎样得出的?
- linux驱动学习(七) ioctl中的cmd和_IO() , _IOR() , IOW() ,_IOWR() 以及_IOC_NR()的关系
- linux驱动学习(七) ioctl中的cmd和_IO() , _IOR() , IOW() ,_IOWR() 以及_IOC_NR()的关系
- linux驱动学习(七) ioctl中的cmd和_IO() , _IOR() , IOW() ,_IOWR() 以及_IOC_NR()的关系
- 左旋转字符串
- 监听IE访问的URL
- Javascript/CSS beautifier
- 忘记mysql 5.1 root密码的处理方法
- 第十五周实验--任务1--《窗口程序设计及MFC启蒙》--为应用程序增加求周长的功能
- linux驱动系统调用ioctl()的cmd参数详解【字段划分图】
- Android系统服务启动分析-binder
- Flex 基础学习笔记
- struts2中result的各种type的作用
- java 策略模式
- 深入探讨电容的种类和作用
- org.springframework.orm.hibernate3.HibernateQueryException: teacherscore is not mapped
- 使用Sqlserver事务发布实现数据同步
- 单文档之于工具条消息