IOCTL(2)

이름
ioctl - 장치를 제어한다.

사용법
#include <sys/ioctl.h>

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

[세번째 인자는 전통적으로 char *argp 이며, 설명를 위해 그렇게 언급하겠다.]

설명
ioctl 함수는 특수 파일의 장치 인자를 조절한다. 특히, 문자 특수 파일(예로 터미널)의 많은 특징적인 동작은 ioctl의 요구에 의해 제어된다. d 인자는 반드시 열린 파일 기술자이어야 한다. ioctl request는 인자가 입력되는 인자인지 출력되는 인자인지와 argp 인자의 바이트 단위의 크기를 나타낸다. ioctl request를 나타내기 사용되는 매크로와 상수는 <sys/ioctl.h>파일에 정의되어 있다.

반환값
성공시, 0이 리턴된다. 에러시, -1이 리턴되며, errno는 적당한 값으로 설정된다.

에러

EBADF
    d는 유효한 기술자가 아니다.

EFAULT
    argp 는 접근할 수 없는 메모리 영역을 참조한다.

ENOTTY
    d 는 문자 특수 파일과 연관되지 있지 않다.

ENOTTY
    명시한 request는 파일 기술자 d 에 해당하는 객체에 적용되지 않는다.

EINVAL
    request또는 argp가 유효하지 않다.

호환
단일 표준이 없다. 인자, 반환값과 ioctl(2)의 의미는 요청되는 장치 드라이버에 따라 달라진다. (이 시스템 콜은 유닉스 스트림 I/O 모델에 깨끗하게 맞지 않는 연산을 위한 대체 방법으로써 사용된다.) 알려져있는 많은 ioctl 호출 리스트를 보기 원한다면 ioctl_list(2) 를 참조해라. ioctl 함수는 Version 7 AT&T Unix에서 나타났다.

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

역자
정강훈 <skyeyes@soback.kornet.net>, 2000년 4월 27일