ioctl 详细介绍
(一)ioctl 的作用:
通过设备驱动程序执行各种类型的硬件控制。除了简单数据传输外,大部分设备可以执行其他的一些操作,比如,用户空间经常请求设备锁门、弹出介质、报告错误信息、改变波特率或者执行自破坏等等。
Ioctl的操作通过流程图简言之:
从图 1 可知, user mode 送 command 到 kernel mode ,然后控制硬件。
(二)ioctl的函数模型:
User mode (用户空间):
int ioctl(int fd, unsigned long cmd, …);
其中...省略号表示可变参数,cmd表示指令,fd表示应用程序传递的文件描述符。
Kernel mode (内核空间):
int ( *ioctl)(struct inode *inode, struct file *filp, unsigned int cmd, unsigned long arg);
inode 和filp两个指针的值对应于fd, cmd和user mode cmd相同、arg是附加参数,可以设置
















