ioctl

IOCTL(2)                 Руководство программиста Linux                 IOCTL(2)



ИМЯ
       ioctl - управление устройствами

ОБЗОР
       #include <sys/ioctl.h>

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

ОПИСАНИЕ
       Функция ioctl манипулирует базовыми параметрами устройств, представленных
       в виде специальных файлов. В частности, многими оперативными
       характеристиками специальных символьных файлов (например терминалов)
       можно управлять через ioctl запросы.  В качестве аргумента d должен быть
       указан открытый файловый дескриптор.

       Второй аргумент является кодом запроса, который зависит от устройства.
       Третий аргумент является указателем на память, который не имеет типа.
       Традиционно это char *argp (до тех пор пока в C не появился void * ).

       Ioctl запрос request кодирует в себе либо аргумент, который является
       параметром in либо аргумент, который является параметром out и кроме того
       размер аргумента argp в байтах.  Макросы и определения, используемые в
       специальных ioctl запросах request находятся в файле <sys/ioctl.h>.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
       Обычно в случае успеха возвращается ноль. Некоторые ioctl используют
       возвращаемое значение как выходной параметр и возвращают в случае успеха
       неотрицательное значение. В случае ошибки возвращается  -1 и значение
       errno устанавливается соответствующим образом.

ОШИБКИ
       EBADF  d не является правильным дескриптором.

       EFAULT argp ссылается на недоступную область памяти.

       ENOTTY d не ассоциирован со специальным символьным устройством.

       ENOTTY Указанный запрос не применим к данному классу объекта, на который
              ссылается дескриптор d .

       EINVAL Request или argp заданы неверно.

СООТВЕТСТВИЕ СТАНДАРТАМ
       Нет единого стандарта. Аргументы, возвращаемые значения и семантики
       ioctl(2) варьируются в соответствии с драйвером устройства (вызов,
       используется как всеохватывающий, что не полностью соответствует
       потоковой модели ввода/вывода в Unix). Смотри ioctl_list(2) где дан
       список многих известных ioctl вызовов.  Функция ioctl появилась в AT&T
       Unix версии 7.

СМОТРИ ТАКЖЕ
       execve(2), fcntl(2), ioctl_list(2), mt(4), sd(4), tty(4)

ПЕРЕВОД
       Перевёл с английского Виктор Вислобоков <corochoone@perm.ru> 2003



BSD Man Page                       2000-09-21                           IOCTL(2)