学习Linux命令 - ioctl

名称

ioctl - 控制设备

概要

#include

int ioctl(int d ,int request ,...);

描述

ioctl函数处理特殊文件的底层设备参数。 特别是,字符特殊文件(例如终端)的许多操作特性可以通过ioctl请求来控制。 参数d必须是一个打开的文件描述符。

第二个参数是一个设备相关的请求代码。 第三个参数是一个无类型指向内存的指针。 它传统上是char * argp (从void *之前的日子开始有效的C),并且将在此讨论中被命名。

一个ioctl 请求已经编码了参数是否是in参数或out参数,参数argp的大小是以字节为单位。 用于指定ioctl 请求的宏和定义位于文件

返回值

通常,成功时返回零。 一些ioctls使用返回值作为输出参数,并在成功时返回非负值。 出错时,返回-1,并且适当地设置errno

错误

EBADF

d不是有效的描述符。

EFAULT

argp引用无法访问的内存区域。

ENOTTY

d不与字符特殊设备相关联。

ENOTTY

指定的请求不适用于描述符引用的对象的类型。

EINVAL

请求argp无效。

符合

没有单一的标准。 ioctl (2)的参数,返回和语义根据所讨论的设备驱动程序而不同(该调用被用作不干净地适合Unix流I / O模型的操作)。 请参阅ioctl_list (2)以获取许多已知ioctl调用的列表。 ioctl函数调用出现在版本7 AT&T Unix中。