Режим редактируемого ввода
Наиболее важным режимом работы с устройствами управляет бит ICANON управляющей структуры termios. Если этот управляющий бит установлен, то Администратор устройств выполняет функции строчного редактирования принимаемых символов. Таким образом, данные будут доступны для обработки прикладным процессам только при вводе строки, что обычно определяется поступлением кода символа "возврат каретки" (CR). Этот режим работы называется режимом редактируемого ввода, каноническим или, иногда, "cooked".
Большинство неполноэкранных приложений работают в режиме редактируемого ввода. Интерпретатор Shell является типичным примером.
В следующей таблице представлены некоторые специальные управляющие символы, которые могут быть заданы в управляющей структуре termios для того, чтобы указать Администратору Dev, каким образом выполнять редактирование.
Dev будет выполнять | При получении |
Перемещение курсора на один символ влево | LEFT |
Перемещение курсора на один символ вправо | RIGHT |
Перемещение курсора в начало строки | HOME |
Перемещение курсора в конец строки | END |
Стирание символа слева от курсора | ERASE |
Удаление символа в текущей позиции курсора | DEL |
Стирание всей вводимой строки | KILL |
Стирание текущей строки и переход к предыдущей строке | UP |
Стирание текущей строки и переход к следующей строке | DOWN |
Переключение между режимами вставки и наложения (каждая новая строка начинает вводиться в режиме наложения) |
INS |
Символы, управляющие редактированием строки, различаются для разных терминалов. Консоль QNX всегда работает с полным набором определенных клавиш редактирования. Если терминал подключен к компьютеру, на котором загружена система QNX, через последовательный порт, то необходимо определить управляющие символы редактирования для данного конкретного терминала. Для этого используется утилита stty. Например, если вы подключили терминал VT100 через последовательный порт (именуемый /dev/ser1), то для того, чтобы извлечь соответствующие коды клавиш редактирования и передать их к /dev/ser1, можно использовать следующую команду
stty term=vt100 </dev/ser1
И наоборот, если вы подключили к последовательному порту модем, который в свою очередь соединен с другим компьютером, загруженным системой QNX, в которой выполняется утилита qtalk, то установку клавиш редактирования строки следует выполнить следующим образом
stty term=qnx </dev/ser1