Если ALT+Fn не обрабатывается линейной дисциплиной, обрабатывается ли оно драйвером TTY?

Клавиши, сопоставленные с сигналами в строке дисциплины, можно просмотреть с помощью stty -e. Вывод такой

enter image description here

Клавиши ALT+Fn в списке нет. Значит, это нажатие обрабатывается драйвером TTY?

Я читал, что дисциплина строк является частью драйвера TTY. Это правда? Если это так, то почему нажатие клавиши не обрабатывается линейной дисциплиной? Что разделяет дисциплину строки и драйвер TTY, если дисциплина строки является частью драйвера TTY?

0
13.03.2016, 16:38
1 ответ

Драйвер терминала знает только об отдельных байтах данных. Управление потоком (функция линейной дисциплины), например, можно увидеть в функциях start и stop , показанных в выходных данных stty .

Функциональные клавиши разные. В отличие от управляющих символов , которые может распознать драйвер терминала, функциональные клавиши могут содержать несколько байтов данных.

  • Обычно (исключая такие вещи, как клавиша tab ), специальные клавиши на клавиатуре сначала отправляют escape-символ в последовательности из нескольких байтов.
  • Приложения (не драйвер терминала ) распознают эти последовательности.
  • Они могут сделать это, используя базу данных терминала, или используя жестко запрограммированное поведение, полагаясь на формат последовательности байтов или просто сопоставляя с известной строкой.
1
28.01.2020, 02:49

Теги

Похожие вопросы