Что означают «на входе» и «на выходе» в таких вариантах, как ICRNL и OCRNL?

Что означают «на входе» и «на выходе» в таких вариантах, как ICRNL и OCRNL?

В документации termiosговорится что-то вроде этого:

МКРНП

Переводить возврат каретки в новую строку при вводе (если не установлен IGNCR).

ОКРНЛ

Преобразовать CR в NL на выходе.

Но что именно означает "на входе" и "на выходе"? Вот что я думаю:

  • «при вводе» означает, что терминал отправляет что-либо на tty-устройство.
  • «при выводе» означает, когда bash(или любой другой процесс) отправляет что-либо на устройство tty.

Я прав?

решение1

Вам нужно представить это в виде «немого терминала» (например, vt100), подключенного к последовательному порту компьютера, и посмотреть на него с точки зрения компьютера.

Таким образом, «ввод» в компьютер происходит, когда терминал отправляет данные на компьютер; например, когда вы печатаете на клавиатуре.

Аналогично «вывод» — это когда компьютер отправляет данные на терминал; например, когда он что-то печатает на экране.

При использовании более современной конфигурации (например, консоли Linux) у нас остаются те же концепции: «вход» — это данные, набранные на клавиатуре, «выход» — это данные, отображенные на экране.

Это соответствует стандартным соглашениям «stdin» и «stdout».

решение2

Это верно, насколько это возможнотермиосыидет, поскольку он касается только связи между терминалом (устройством для отображения символов, совмещенным с устройством для ввода символов) и главным компьютером.

Что"на"Может показаться странным, но это просто краткий способ сказать «в процессе ввода» или «в процессе вывода».

Связанный контент