linux 驱动开发常用函数

控制设备函数

ioctl

用户程序通过命令码(request)告诉驱动程序它想做什么,至于怎么解释这些命令和怎么实现这些命令,这都是驱动程序要做的事情。
ioctl中命令码是唯一联系用户程序命令和驱动程序支持的途径。 命令码的组织是有一些讲究的,因为我们一定要做到命令和设备是一一通过switch{case}对应的。
由于命名码不直观,Linux Kernel中提供了一些宏。这些宏可根据便于理解的字符串生成命令码,或者是从命令码得到一些用户可以理解的字符串以标明这个命令对应的设备类型、设备序列号、数据传送方向和数据传输尺寸。理解request命令码是怎么在用户程序里生成并在驱动程序里解析的,程序员最主要的工作量在switch{case}结构中,因为对设备的I/O控制都是通过这一部分的代码实现的。

大纲

#inlclude <sys/ioctl.h>
int ioctl(int fd,unsigned long request,...);

描述

ioctl()系统调用常用于特殊文件的重点设备参数。
request:指定,大多数操作特征指定文件(e.g. 终端),可以使用ioctl()请求控制指定文件。

fd: fd参数必须是一个可以开启的文件描述符。
第二个参数是一个设备附属的请求符。第三个参数是一个非典型存储指针。

ioctl()请求被编码,无论参数时,一个输入参数或者一个输出参数,

返回值

返回值成功失败
0/输出参数-1/error
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值