Provided by: manpages-ru_0.98-4_all bug

ИМЯ

       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