В документации termios
говорится что-то вроде этого:
МКРНП
Переводить возврат каретки в новую строку при вводе (если не установлен IGNCR).
ОКРНЛ
Преобразовать CR в NL на выходе.
Но что именно означает "на входе" и "на выходе"? Вот что я думаю:
- «при вводе» означает, что терминал отправляет что-либо на tty-устройство.
- «при выводе» означает, когда
bash
(или любой другой процесс) отправляет что-либо на устройство tty.
Я прав?
решение1
Вам нужно представить это в виде «немого терминала» (например, vt100), подключенного к последовательному порту компьютера, и посмотреть на него с точки зрения компьютера.
Таким образом, «ввод» в компьютер происходит, когда терминал отправляет данные на компьютер; например, когда вы печатаете на клавиатуре.
Аналогично «вывод» — это когда компьютер отправляет данные на терминал; например, когда он что-то печатает на экране.
При использовании более современной конфигурации (например, консоли Linux) у нас остаются те же концепции: «вход» — это данные, набранные на клавиатуре, «выход» — это данные, отображенные на экране.
Это соответствует стандартным соглашениям «stdin» и «stdout».
решение2
Это верно, насколько это возможнотермиосыидет, поскольку он касается только связи между терминалом (устройством для отображения символов, совмещенным с устройством для ввода символов) и главным компьютером.
Что"на"Может показаться странным, но это просто краткий способ сказать «в процессе ввода» или «в процессе вывода».