IOCTL(2)

명칭
ioctl - 디바이스를 제어한다

프로그램 라이브러리
libc

서식
<sys/ioctl.h> int ioctl(int d, unsigned long request, ...)

해설
ioctl() 함수는 특수 파일의 하층이 되고 있는 디바이스의 파라미터를 조작합니다. 특히, 캐릭터형 특수 파일 (예를 들어, 단말)의 다수의 조작 속성은 ioctl() 그리고 제어할 수 있습니다. 인수 d (은)는 열려 있는 파일 기술자일 필요가 있습니다.

ioctl 에의 3 번째의 인수는 종래부터 char *argp (와)과 이름 붙일 수 있고 있습니다. 그러나, FreeBSD 3.0 에서의 ioctl 의 대부분의 사용법에서는, 3 번째의 인수가 caddr_t 또는 int 일 필요가 있습니다.

ioctl 의 request (은)는, 인수가 “in” 파라미터인가 “out” 파라미터인가라고 하는 것으로, 인수 argp 의 사이즈 (바이트 단위)를 encode 합니다. ioctl 의 request (을)를 지정하는데 사용되는 매크로와 정의 (은)는 파일 <sys/ioctl.h> 의 안에 있습니다.

반환값
에러가 일어났을 경우는 -1 이 돌려주어져 에러를 나타내기 위해서(때문에) errno 하지만 설정됩니다.

에러
ioctl() (은)는 다음의 경우에 실패합니다.

[EBADF]
    d 하지만 유효한 기술자가 아닙니다.

[ENOTTY]
    d 하지만 캐릭터형 특수 디바이스에 대응하고 있지 않습니다.

[ENOTTY]
    지정된 요구는 기술자 d 하지만 참조하는 종류의 오브젝트에는 적용되지 않습니다.

[EINVAL]
    request 또는 argp 하지만 유효하지는 않습니다.

[EFAULT]
    argp (은)는 프로세서가 할당한 주소 범위외를 가리키고 있습니다.

관련 항목
execve(2), fcntl(2), intro(4), tty(4)

역사
ioctl() 함수는 AT&T UNIX 그리고 처음 등장했습니다.