ioctl
来源:互联网 发布:暨大网络教学平台 编辑:程序博客网 时间:2024/06/04 00:13
如何用Linux内核里的操作函数集file_operation里ioctl函数编写
步骤一:打开linux内核源代码里的Documentation文件夹下的ioctl文档
文档里介绍了要用到的头文件和ioctl函数介绍,
步骤二:打开文档ioctl-decoding,可知要包含头文件
defined in <linux/ioctl.h>
里面又需要包含的头文件是
include\asm-generic\ioctl.h
打开这个头文件,里面的红函数告诉你怎么定义一个命令,type是用来区别不同设备的,nr是同一个设备下的不同命令号,size是要传递的数据类型
#define_IO(type,nr) _IOC(_IOC_NONE,(type),(nr),0)
#define_IOR(type,nr,size) _IOC(_IOC_READ,(type),(nr),(_IOC_TYPECHECK(size)))
#define_IOW(type,nr,size) _IOC(_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
#define_IOWR(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
#define_IOR_BAD(type,nr,size) _IOC(_IOC_READ,(type),(nr),sizeof(size))
#define_IOW_BAD(type,nr,size) _IOC(_IOC_WRITE,(type),(nr),sizeof(size))
#define_IOWR_BAD(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),sizeof(size))
举例:
#define LED2_ON _IOR(‘L’,0,unsigned char) L字符表示这个设备,0表示第一个命令,unsignedchar表示这个命令会传递一个字节的数据
- ioctl
- ioctl
- ioctl
- ioctl
- ioctl
- ioctl
- ioctl
- ioctl
- ioctl
- ioctl
- ioctl
- ioctl
- ioctl
- ioctl
- ioctl
- ioctl
- ioctl
- ioctl
- MySql 关键字意义
- 挖掘算法中的数据结构(五):排序算法总结 和 索引堆及优化(堆结构)
- hdu 1232 畅通公路
- 深入学习js之浅谈设计模式(混入)
- Longest Consecutive Sequence leetcode java
- ioctl
- I2C总线传输协议
- java每日一练
- servlet的执行过程
- JAVA几种常见的设计模式
- Faster R-CNN —— ROIDB和Minibatch函数实现分析
- vue 问题总结
- [bzoj1808]/[Ioi2007]training 训练路径
- java hasNext()与next()的区别,hasNextInt()与nextInt()的区别,hasNextDouble()与nextDouble()的区别