【Linux】ioctl函数

【写在前面】
网上资料梳理,侵删烦请联系。或有表达错误,欢迎指出纠正。

驱动程序的ioctl函数

是什么

设备驱动程序中对设备的I/O通道进行管理的函数。

有何用

对I/O通道进行管理:
对设备的特性进行控制。如串口的传输波特率、马达转速等。
一个字符设备驱动通常会实现设备打开、关闭、读写等功能。若需要扩展新功能,通常以增设ioctl()命令的方式实现。

如何用

  • 用户空间ioctl调用

int ioctl(int fd, int cmd, …);
//让设备fd做cmd操作。

fd—文件描述符。用户程序打开设备时使用open函数返回的文件标示符;
cmd—交互协议。设备驱动将根据cmd执行对应操作。用户程序对设备的控制命令;
…—可变参数。依赖cmd指定长度及类型。是一些补充参数,一般最多一个,这个参数的有无和cmd的意义相关。
函数执行成功时返回0,失败返回-1.

  • ioctl实现
    若驱动程序提供了对ioctl的支持,用户就可以在用户程序中使用ioctl函数来控制设备的I/O通道。
    用户程序所作的只是通过命令码(cmd)告诉驱动程序它想做什么,至于怎么解释这些命令和怎么实现这些命令,这都是驱动程序要做的事情。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值