學習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中。