ИМЯ
ioctl_console -
    управление
    вводом-выводом
    (ioctl)
    консольного
    терминала
    и
    виртуальных
    консолей
ОПИСАНИЕ
Для
    терминалов
    и
    виртуальных
    консолей
    поддерживаются
    Linux-ориентированные
    запросы ioctl(2),
    перечисленные
    далее. Для
    каждого
    запроса
    требуется
    третий
    аргумент
    argp.
  - KDGETLED
- Получить
      состояние
      индикаторов.
      argp
      указывает
      ячейку
      типа char. В
      младших
      трёх битах
      *argp
      хранится
      состояние
      индикаторов:
    
      
        | LED_CAP | 0x04 | индикатор
          caps lock |  
        | LED_NUM | 0x02 | индикатор
          num lock |  
        | LED_SCR | 0x01 | индикатор
          scroll lock |  
 
- KDSETLED
- Установить
      состояние
      индикаторов.
      Состояние
      индикаторов
      устанавливается
      в
      соответствии
      с тремя
      младшими
      битами
      беззнакового
      длинного
      целого argp.
      Однако,
      если
      установлен
      старший
      бит,
      индикаторы
      возвращаются
      в исходное
      состояние:
      отображают
      состояние
      функций
      клавиатуры
      caps lock, num lock и scroll lock.
До Linux 1.1.54
    индикаторы
    состояния
    отражались
    только
    соответствующими
    флагами
    клавиатуры
    и KDGETLED/KDSETLED и также
    могли
    изменять
    флаги
    клавиатуры.
    Начиная с Linux
    1.1.54
    индикаторы
    могут
    отображать
    произвольную
    информацию,
    но по
    умолчанию
    показывают
    флаги
    клавиатуры.
    Следующие
    два ioctl
    используются
    для
    доступа к
    флагам
    клавиатуры.
  - KDGKBLED
- Получить
      флаги
      клавиатуры:
      CapsLock, NumLock, ScrollLock (не
      индикаторы).
      argp
      указывает
      на ячейку
      типа char, в
      которой
      сохраняется
      состояния
      флагов.
      Младшие
      три бита
      (маска 0x7)
      содержат
      текущее
      состояние
      флагов,
      следующие
      три бита
      (маска 0x70)
      содержат
      устанавливаемое
      состояние
      флагам по
      умолчанию
      (начиная с Linux
      1.1.54).
- KDSKBLED
- Установить
      флаги
      клавиатуры:
      CapsLock, NumLock, ScrollLock (не
      индикаторы).
      Беззнаковое
      длинное
      целое argp
      содержит
      требуемые
      состояния
      флагов. Три
      младших
      бита (маска
      0x7) содержат
      состояния
      флагов,
      следующие
      три бита
      (маска 0x70)
      содержат
      состояния
      флагов по
      умолчанию
      (начиная с Linux
      1.1.54).
- KDGKBTYPE
- Получить
      тип
      клавиатуры.
      Возвращается
      значение KB_101
      равное 0x02.
- KDADDIO
- Добавить
      порт
      ввода/вывода
      (I/O) как
      допустимый.
      Эквивалентно
      вызову
    ioperm(arg,1,1).
- KDDELIO
- Удалить
      порт
      ввода/вывода
      (I/O) как
      недопустимый.
      Эквивалентно
      вызову
    ioperm(arg,1,0).
- KDENABIO
- Включить
      ввод/вывод
      на
      видеокарту.
      Эквивалентно
      вызову ioperm(0x3b4,
      0x3df-0x3b4+1, 1).
- KDDISABIO
- Выключить
      ввод/вывод
      на
      видеокарту.
      Эквивалентно
      вызову ioperm(0x3b4,
      0x3df-0x3b4+1, 0).
- KDSETMODE
- Установить
      текстовый/графический
      режим.
      Беззнаковое
      целое argp
      содержит
      одно из
      двух
      значений:
    
      
        | KD_TEXT | 0x00 |  
        | KD_GRAPHICS | 0x01 |  
 
- KDGETMODE
- Получить
      тип режима
      (текстовый/графический).
      Значение
      argp
      указывает
      на int,
      равное
      одному из
      представленных
      чуть ранее
      в KDSETMODE.
- KDMKTONE
- Генерировать
      тон
      заданной
      длительности.
      Младшие 16
      битов
      беззнакового
      длинного
      целого argp
      задают
      частоту
      тона
      (период в
      тактах),
      старшие 16
      битов
      устанавливают
      его
      длительность
      в мсек.
      Если
      длительность
      равна нулю,
      звук
      выключается.
      Управление
      возвращается
      немедленно.
      Например,
      argp = (125<<16) + 0x637
      определяет
      звук,
      обычно
      связанный
      с ctrl-G
      (работает
      начиная с Linux
      0.99pl1; не
      работает в
      Linux 2.1.49-50).
- KIOCSOUND
- Запустить
      и
      остановить
      генерацию
      звука.
      Младшие 16
      битов argp
      определяют
      период в
      тактах (то
      есть argp =
      1193180/частота).
      Значение
      argp = 0
      выключает
      звук. В
      обоих
      случаях
      управление
      возвращается
      немедленно.
- GIO_CMAP
- Получить
      из ядра
      текущую
      цветовую
      карту по
      умолчанию.
      argp
      указывает
      на массив
      из 48 байтов
      (начиная с Linux
      1.3.3).
- PIO_CMAP
- Изменить
      цветовую
      карту по
      умолчанию
      для
      текстового
      режима. argp
      указывает
      на массив
      из 48 байтов,
      который
      содержит,
      по порядку,
      значения
      красного,
      зеленого и
      синего для
      16-и
      доступных
      экранных
      цветов: 0 —
      составляющая
      выключена,
      255 — полная
      интенсивность.
      Цвета по
      умолчанию,
      по порядку:
      чёрный,
      тёмно-красный,
      тёмно-зелёный,
      коричневый,
      тёмно-синий,
      тёмно-сиреневый,
      тёмно-голубой,
      светло-серый,
      тёмно-серый,
      ярко-красный,
      ярко-зелёный,
      жёлтый,
      ярко-синий,
      ярко-сиреневый,
      ярко-голубой
      и белый
      (начиная с Linux
      1.3.3).
- GIO_FONT
- Получить
      экранный
      шрифт (256
      символов) в
      расширенном
      виде. argp
      указывает
      на массив
      из 8192 байтов.
      Возвращает
      код ошибки
      EINVAL, если
      текущий
      загруженный
      шрифт
      содержит 512
      символов
      или
      консоль
      находится
      не в
      текстовом
      режиме.
- GIO_FONTX
- Получить
      экранный
      шрифт и
      связанную
      с ним
      информацию.
      argp
      указывает
      на struct consolefontdesc (см.
      PIO_FONTX). При
      вызове
      значение
      поля charcount
      должно
      быть равно
      максимальному
      числу
      символов,
      которое
      помещается
      в буфер,
      указываемый
      chardata. При
      возврате
      charcount и charheight
      содержат
      информацию
      о текущем
      загруженном
      шрифте, а
      массив chardata
      содержит
      данные
      шрифта,
      если
      согласно
      начальному
      значению
      charcount для
      этого
      достаточно
      места; в
      противном
      случае
      буфер
      остаётся
      неизменным
      и errno
      присваивается
      значение
      ENOMEM (начиная
      с Linux 1.3.1).
- PIO_FONT
- Установить
      экранный
      шрифт из 256
      символов.
      Шрифт
      загружается
      в
      знакогенератор
      EGA/VGA. argp
      указывает
      на карту
      размером 8192
      байта (32
      байта на
      символ).
      Только
      первые N из
      них
      используются
      для шрифта
      8xN (0 < N <= 32). Этот
      вызов
      также
      отменяет
      перекодировку
      в Юникод.
- PIO_FONTX
- Установить
      экранный
      шрифт и
      соответствующую
      информацию
      для
      изображения.
      argp
      указывает
      на
      структуру:
  
  - 
    
    struct consolefontdesc {
    unsigned short charcount;  /* число символов в шрифте
                                  (256 или 512) */
    unsigned short charheight; /* число линий сканирования на
                                  символ (1-32) */
    char          *chardata;   /* данные шрифта в
                                  расширенном формате */
};
- Если
      требуется,
      соответственно
      изменяются
      размеры
      экрана и
      соответствующим
      процессам
      посылается
      сигнал SIGWINCH.
      Этот вызов
      также
      отменяет
      перекодировку
      в Юникод
      (начиная с Linux
      1.3.1).
  - PIO_FONTRESET
- Сбросить
      экранный
      шрифт,
      размер и
      перекодировку
      в Юникод в
      начальные
      значения,
      использованные
      при
      загрузке.
      Аргумент
      argp не
      используется,
      но его
      значение
      должно
      быть NULL,
      чтобы эта
      версия
      была
      совместима
      с будущими
      версиями Linux.
      (Начиная с Linux
      1.3.28).
- GIO_SCRNMAP
- Получить
      разметку
      экрана из
      ядра. argp
      указывает
      на область
      размером E_TABSZ,
      которая
      заполняется
      позициями
      символов
      шрифта,
      используемыми
      при
      отображении.
      Вызов
      возвращает
      бесполезную
      информацию,
      если
      текущий
      загруженный
      шрифт
      содержит
      более 256
      символов.
- GIO_UNISCRNMAP
- Получить
      полную
      экранную
      перекодировку
      в Юникод из
      ядра. argp
      указывает
      на область
      размером
      E_TABSZ*sizeof(unsigned short),
      которая
      заполняется
      представлением
      в Юникоде
      каждого
      символа.
      Специальный
      набор
      Юникода,
      начинающийся
      с U+F000,
      используется
      для
      перекодировки
      «напрямую
      в шрифт»
      (начиная с Linux
      1.3.1).
- PIO_SCRNMAP
- Загрузить
      «определяемую
      пользователем»
      (четвёртую)
      таблицу в
      ядро, по
      которой
      перекодируются
      байты в
      символы
      экрана
      консоли. argp
      указывает
      на область
      размером
    E_TABSZ.
- PIO_UNISCRNMAP
- Загрузить
      «определяемую
      пользователем»
      (четвёртую)
      таблицу в
      ядро,
      перекодирующую
      байты в
      значения
      Юникода,
      которые
      затем
      транслируются
      в экранные
      символы
      согласно
      текущей
      загруженной
      карте
      соответствия
      символов
      Юникода и
      шрифта.
      Специальные
      коды
      Юникода,
      начинающиеся
      с U+F000, могут
      использоваться
      для
      непосредственного
      перевода
      байтов в
      символы
      шрифта
      (начиная с Linux
      1.3.1).
- GIO_UNIMAP
- Получить
      соответствие
      символов
      Юникода
      шрифту из
      ядра. argp
      указывает
      на
      структуру
  
  - 
    
    struct unimapdesc {
    unsigned short  entry_ct;
    struct unipair *entries;
};
- где entries
      указывает
      на массив
      структур
- 
    
    struct unipair {
    unsigned short unicode;
    unsigned short fontpos;
};
- (начиная с Linux
      1.1.92)
  - PIO_UNIMAP
- Поместить
      соответствие
      символов
      Юникода и
      экранного
      шрифта в
      ядро. argp
      указывает
      на struct unimapdesc
      (начиная с Linux
      1.1.92).
- PIO_UNIMAPCLR
- Очистить
      таблицу,
      возможно с
      помощью
      алгоритма
      хэширования.
      argp
      указывает
      на
      структуру
  
  - 
    
    struct unimapinit {
    unsigned short advised_hashsize;  /* 0, если не использовать */
    unsigned short advised_hashstep;  /* 0, если не использовать */
    unsigned short advised_hashlevel; /* 0, если не использовать */
};
- (начиная с Linux
      1.1.92)
  - KDGKBMODE
- Получить
      текущий
      режим
      клавиатуры.
      Значение
      argp
      указывает
      на ячейку
      типа long, в
      которой
      может быть
      одно из
      значений:
    
      
        | K_RAW | 0x00 /* режим
          без
          обработки
          (скан-коды)
          */ |  
        | K_XLATE | 0x01 /*
          транслированные
          с помощью
          keymap коды
          клавиш */ |  
        | K_MEDIUMRAW | 0x02 /* режим
          средней
          обработки
          (скан-коды)
          */ |  
        | K_UNICODE | 0x03 /* режим
          Юникода */ |  
        | K_OFF | 0x04 /* режим
          выключен;
          начиная с
          Linux 2.6.39 */ |  
 
- KDSKBMODE
- Установить
      текущий
      режим
      клавиатуры.
      Значение
      argp
      указывает
      на ячейку
      типа long,
      значением
      которой
      может быть
      любое из
      представленных
      чуть ранее
      в KDGKBMODE.
- KDGKBMETA
- Получить
      режим
      обработки
      метаклавиш.
      argp
      указывает
      на ячейку
      типа long, в
      которой
      может быть
      одно из
      значений:
    
      
        | K_METABIT | 0x03 | установлен
          старший
          бит |  
        | K_ESCPREFIX | 0x04 | экранирующий
          префикс |  
 
- KDSKBMETA
- Установить
      режим
      обработки
      клавиши
      мета.
      Значение
      argp
      указывает
      на ячейку
      типа long,
      значением
      которой
      может быть
      любое из
      представленных
      чуть ранее
      в KDGKBMETA.
- KDGKBENT
- Получить
      один
      элемент из
      таблицы
      трансляции
      клавиш (код
      клавиши
      для кода
      действия).
      argp
      указывает
      на
      структуру
  
  - 
    
    struct kbentry {
    unsigned char  kb_table;
    unsigned char  kb_index;
    unsigned short kb_value;
};
- значения
      двух
      первых
      полей
      представляют
      собой: kb_table —
      выбранную
      таблицу
      клавиш (0 <= kb_table
      < MAX_NR_KEYMAPS) и kb_index —
      код
      клавиши (0 <=
      kb_index < NR_KEYS). kb_value
      присваивается
      соответствующий
      код
      действия
      или K_HOLE, если
      нет такой
      клавиши,
      или K_NOSUCHMAP, если
      значение
      kb_table
    неверно.
  - KDSKBENT
- Создать
      элемент в
      таблице
      трансляции
      клавиш. argp
      указывает
      на struct kbentry.
- KDGKBSENT
- Получить
      значение
      строки
      функциональной
      клавиши. argp
      указывает
      на
      структуру
  
  - 
    
    struct kbsentry {
    unsigned char kb_func;
    unsigned char kb_string[512];
};
- kb_string равна
      (заканчивающейся
      null) строке,
      соответствующей
      коду
      действия
      функциональной
      клавиши
    kb_func.
  - KDSKBSENT
- Создать
      элемент
      строки
      функциональной
      клавиши. argp
      указывает
      на struct kbsentry.
- KDGKBDIACR
- Получить
      таблицу
      акцентов
      из ядра. argp
      указывает
      на
      структуру
  
  - 
    
    struct kbdiacrs {
    unsigned int   kb_cnt;
    struct kbdiacr kbdiacr[256];
};
- где kb_cnt —
      число
      элементов
      массива,
      каждый из
      которых
      является
      структурой
- 
    
    struct kbdiacr {
    unsigned char diacr;
    unsigned char base;
    unsigned char result;
};
  - KDGETKEYCODE
- Получить
      элемент
      таблицы
      кодов
      клавиш
      ядра
      (сканкод в
      код
      клавиши). argp
      указывает
      на
      структуру
  
  - 
    
    struct kbkeycode {
    unsigned int scancode;
    unsigned int keycode;
};
- keycode
      устанавливается
      в
      соответствии
      с заданным
      scancode (только 89 <=
      scancode <= 255. Для 1 <=
      scancode <= 88, keycode==scancode;
      начиная с Linux
      1.1.63).
  - KDSETKEYCODE
- Записать
      элемент
      таблицы
      кодов
      клавиш
      ядра. argp
      указывает
      на struct kbkeycode
      (начиная с Linux
      1.1.63).
- KDSIGACCEPT
- Вызывающий
      процесс
      показывает
      свою
      готовность
      к приёму
      сигнала argp,
      если он
      генерируется
      нажатием
      соответствующей
      комбинации
      клавиш (1 <= argp
      <= NSIG).
      Смотрите
      функцию
      spawn_console() в linux/drivers/char/keyboard.c.
- VT_OPENQRY
- Получить
      первую
      доступную
      (не
      открытую)
      консоль. argp
      указывает
      ячейку
      типа int,
      устанавливаемое
      значение
      которой
      равно
      номеру vt (1 <= *argp
      <= MAX_NR_CONSOLES).
- VT_GETMODE
- Считывает
      режим
      активного
      vt. argp
      указывает
      на
      структуру
  
  - 
    
    struct vt_mode {
    char  mode;    /* режим vt */
    char  waitv;   /* при установленном; остановка при записи, если терминал неактивен */
    short relsig;  /* послать сигнал при освобождении req */
    short acqsig;  /* послать сигнал при захвате */
    short frsig;   /* не используется (устанавливается в 0) */
};
- которая
      задаёт
      режим
      активного
      vt. mode имеет
      одно из
      значений:
    
      
        | VT_AUTO | автоматическое
          переключение
          vt |  
        | VT_PROCESS | обрабатывать
          управление
          переключением |  
        | VT_ACKACQ | подтверждающий
          переключатель |  
 
  - VT_SETMODE
- Установить
      режим
      активного
      vt. argp
      указывает
      на struct vt_mode.
- VT_GETSTATE
- Получить
      общую
      информацию
      о
      состоянии
      vt. argp
      указывает
      на
      структуру
  
  - 
    
    struct vt_stat {
    unsigned short v_active;  /* активный vt */
    unsigned short v_signal;  /* посылаемый сигнал */
    unsigned short v_state;   /* битовая маска vt */
};
- Для
      каждого
      используемого
      vt
      устанавливается
      соответствующий
      бит в поле
      v_state. (В
      версиях с 1.0
      до 1.1.92).
  - VT_RELDISP
- Освободить
      дисплей.
- VT_ACTIVATE
- Переключиться
      на
      виртуальный
      терминал
      argp (1 <= argp <= MAX_NR_CONSOLES).
- VT_WAITACTIVE
- Подождать,
      пока
      виртуальный
      терминал
      argp не
      станет
      активным.
- VT_DISALLOCATE
- Освободить
      память,
      выделенную
      виртуальному
      терминалу
      argp (начиная
      с Linux 1.1.54).
- VT_RESIZE
- Установить
      представление
      о размере
      экрана в
      ядре. argp
      указывает
      на
      структуру
  
  - 
    
    struct vt_sizes {
    unsigned short v_rows;       /* количество строк */
    unsigned short v_cols;       /* количество столбцов */
    unsigned short v_scrollsize; /* не используется */
};
- Заметим,
      что этот
      вызов не
      изменяет
      видеорежим.
      Смотрите
      resizecons(8)
      (начиная с Linux
      1.1.54).
  - VT_RESIZEX
- Установить
      значение
      различных
      параметров
      экрана в
      ядре. argp
      указывает
      на
      структуру
  
  - 
    
    struct vt_consize {
    unsigned short v_rows;  /* количество строк */
    unsigned short v_cols;  /* количество столбцов */
    unsigned short v_vlin;  /* количество строк на экране
                               в пикселях */
    unsigned short v_clin;  /* количество строк в символе
                               в пикселях */
    unsigned short v_vcol;  /* количество столбцов на экране
                               в пикселях */
    unsigned short v_ccol;  /* количество столбцов в символе
                               в пикселях */
};
- Любому
      параметру
      может быть
      присвоено
      нулевое
      значение,
      указывающее
      "оставить
      без
      изменений",
      но, если
      задано
      несколько
      параметров,
      то они
      должны
      быть
      согласованы.
      Этот вызов
      не
      изменяет
      видеорежим.
      Смотрите
      resizecons(8)
      (начиная с Linux
      1.3.3).
Действие
    следующих
    ioctl зависит
    от первого
    байта
    структуры,
    указываемой
    argp, далее
    называемой
    subcode.
    Доступны
    только
    суперпользователю
    или
    владельцу
    текущего
    терминала.
  - TIOCLINUX,
    subcode=0
- Сделать
      дамп
      экрана.
      Удалено в Linux
      1.1.92 (c ядром 1.1.92 и
      более
      поздним
      используйте
      чтение из
      /dev/vcsN или /dev/vcsaN).
- TIOCLINUX,
    subcode=1
- Получить
      информацию
      о задании.
      Удалено в Linux
      1.1.92.
- TIOCLINUX,
    subcode=2
- Произвести
      выделение.
      Значение
      argp
      указывает
      на
      структуру
  
  - 
    
    struct {
    char  subcode;
    short xs, ys, xe, ye;
    short sel_mode;
};
- xs и ys —
      начальные
      столбец и
      строка. xe и
      ye —
      конечные
      столбец и
      строка (у
      левого
      верхнего
      угла
      строка=столбец=1).
      Значение
      sel_mode равно 0
      для
      выделения
      «символ за
      символом»,
      1 для
      выделения
      «слово за
      словом»
      или 2 для
      выделения
      «строки за
      строкой».
      Выделенные
      символы
      подсвечиваются
      и
      сохраняются
      в
      статическом
      массиве sel_buffer
      из devices/char/console.c.
  - TIOCLINUX,
    subcode=3
- Вставить
      выделение.
      Символы
      буфера
      выделения
      записываются
      в fd.
- TIOCLINUX,
    subcode=4
- Убрать
      заставку (blank
      screen)
- TIOCLINUX,
    subcode=5
- Установить
      содержимое
      256-битной
      таблицы
      поиска
      определения
      символов в
      «word» для
      выделения
      «слово за
      словом»
      (начиная с Linux
      1.1.32).
- TIOCLINUX,
    subcode=6
- Значение
      argp
      указывает
      ячейку
      типа char,
      которая
      устанавливает
      значение
      переменной
      ядра shift_state
      (начиная с Linux
      1.1.32).
- TIOCLINUX,
    subcode=7
- Значение
      argp
      указывает
      ячейку
      типа char,
      которая
      устанавливает
      значение
      переменной
      ядра report_mouse
      (начиная с Linux
      1.1.33).
- TIOCLINUX,
    subcode=8
- Сделать
      дамп
      значений
      ширины и
      высоты
      экрана,
      позиции
      курсора и
      всех пар
      символ-атрибут
      (только в
      версиях с 1.1.67
      по 1.1.91. С ядром
      1.1.92 и более
      поздних
      версий
      используйте
      чтение /dev/vcsa*).
- TIOCLINUX,
    subcode=9
- Восстановить
      ширину и
      высоту
      экрана,
      позицию
      курсора и
      все пары
      символ-атрибут
      (только в
      версиях с 1.1.67
      по 1.1.91. С ядром
      1.1.92 и более
      поздних
      версий
      используйте
      запись в
      /dev/vcsa*).
- TIOCLINUX,
    subcode=10
- Обработчик
      функций
      энергосбережения
      для нового
      поколения
      мониторов.
      Режим
      гашения (blanking)
      экрана VESA
      устанавливается
      равным argp[1],
      который
      определяет
      тип
      гашения:
  - 0:
- Гашение
      экрана
      выключено.
- 1:
- Текущие
      установки
      регистров
      видеоадаптера
      сохраняются,
      затем
      контроллер
      программируется
      на
      отключение
      вертикальной
      синхронизации.
      Происходит
      перевод
      монитора в
      режим
      «ожидания»
      (standby). Если в
      мониторе
      есть
      таймер Off_Mode,
      то он может
      в итоге сам
      выключить
      питание.
- 2:
- Текущие
      настройки
      сохраняются,
      а затем
      вертикальная
      и
      горизонтальная
      синхронизации
      отключаются.
      Происходит
      перевод в
      режим
      «выключен»
      (off). Если в
      мониторе
      нет
      таймера Off_Mode
      или вы
      хотите
      отключить
      питание
      сразу же по
      истечении
      времени blank_timer,
      то можете
      выбрать
      это
      значение.
      Внимание:
      частое
      выключение
      питания
      может
      повредить
      монитор
      (начиная с Linux
      1.1.76).
 
ВОЗВРАЩАЕМОЕ
  ЗНАЧЕНИЕ
При
    успешном
    выполнении
    возвращается
    0. В случае
    ошибки
    возвращается
    -1, а errno
    устанавливается
    в
    соответствующее
    значение.
ОШИБКИ
Переменная
    errno может
    принимать
    следующие
    значения:
  - EBADF
- Неправильный
      файловый
      дескриптор.
- EINVAL
- Неправильный
      файловый
      дескриптор
      или argp.
- ENOTTY
- Файловый
      дескриптор
      не связан
      со
      специальным
      символьным
      устройством,
      или
      указанный
      запрос к
      нему
      неприменим.
- EPERM
- Недостаточно
      прав.
ЗАМЕЧАНИЯ
Предупреждение:
    не
    рассматривайте
    эту
    справочную
    страницу
    как
    документацию
    о ioctl консоли
    Linux Она
    предназначена
    только для
    любознательных,
    как
    альтернатива
    исходному
    коду. Ioctl — это
    внутренние
    недокументированные
    возможности
    Linux, которые
    могут
    изменяться
    без
    предупреждения.
    (И на самом
    деле, эта
    страница
    более или
    менее
    полно
    описывает
    параметры
    ядра
    версии 1.1.94;
    они
    несколько
    отличаются
    от
    параметров
    ядра более
    ранних
    версий.)
Очень
    часто ioctl
    вводятся
    для обмена
    между
    ядром и
    какой-то
    определённой
    известной
    программой
    (fdisk, hdparm, setserial, tunelp, loadkeys, selection, setfont и
    т.д.), и их
    поведение
    изменяется
    по
    требованию
    этой
    программы.
Программы,
    использующие
    такие ioctl, не
    могут быть
    перенесены
    в другие
    версии UNIX, не
    будут
    работать в
    старых
    версиях Linux и
    могут не
    работать в
    будущих
    версия Linux.
Используйте
    функции POSIX.
СМОТРИТЕ
  ТАКЖЕ
dumpkeys(1), kbd_mode(1), loadkeys(1),
    mknod(1), setleds(1), setmetamode(1), execve(2),
    fcntl(2), ioctl_tty(2), ioperm(2), termios(3),
    console_codes(4), mt(4), sd(4), tty(4),
    ttyS(4), vcs(4), vcsa(4), charsets(7),
    mapscrn(8), resizecons(8), setfont(8)
/usr/include/linux/kd.h, /usr/include/linux/vt.h