Основы программирования в Linux
Шрифт:
Рис. 5.1
В терминологии UNIX управляющий интерфейс устанавливает "порядок обслуживания линий", обеспечивающий программе ощутимую гибкость в задании поведения драйвера терминала.
К основным функциям, которыми вы можете управлять, относятся следующие:
редактирование строки — применение для редактирования клавиши <Backspace>;
буферизация — считывание символов сразу или
отображение — управление отображением так же, как при считывании паролей;
CR/LF — отображение для ввода и вывода: что происходит при выводе символа перевода строки (\n);
скорости передачи данных по линии — редко применяется для консоли ПК, эти скорости очень важны для модемов и терминалов на линиях последовательной передачи.
Аппаратная модель
Перед тем как подробно рассматривать общий терминальный интерфейс, очень важно проанализировать аппаратную модель, предназначенную для управления.
Концептуальная схема (физическая модель на некоторых старых узлах UNIX подобна данной) включает машину с ОС UNIX, подключенную через последовательный порт с модемом и далее по телефонной линии с другим модемом к удаленному терминалу (рис. 5.2). На деле это просто вариант установки, применявшийся некоторыми малыми провайдерами интернет-услуг "на заре туманной юности" Интернета. Эта модель отдаленно напоминает организацию "клиент — сервер", при использовании которой программа выполняется на большом компьютере, а пользователи работают на терминалах ввода/вывода.
Рис. 5.2
Если вы работаете на ПК под управлением ОС Linux, эта модель может показаться чересчур сложной. Однако, поскольку у обоих авторов есть модемы, мы можем при желании использовать программу эмуляции терминала, например, minicom для запуска удаленного сеанса работы в системе на любой другой машине, подобной этой, с помощью пары модемов и телефонной линии связи. Конечно, сегодня быстрый широкополосный доступ вытеснил из потребления эту рабочую модель, но она до сих пор не лишена некоторых достоинств.
Преимущество применения этой аппаратной модели заключается в том, что в большинстве реальных ситуаций возникает потребность в некотором сокращенном варианте этого наиболее сложного случая. Удовлетворить эти потребности будет гораздо легче, если приведенная модель сохранит подобные функциональные возможности.
Структура типа termios
Тип
Программы, применяющие вызовы функций,
Значения, которые можно изменять для управления терминалом, разделены на группы, относящиеся к следующим режимам:
ввод;
вывод;
управление;
локальный;
специальные управляющие символы.
Минимальная структура типа
Имена элементов структуры соответствуют пяти типам параметров из предыдущего перечня.
Инициализировать структуру типа
Этот вызов записывает текущие значения переменных интерфейса терминала в структуру, на которую указывает параметр
Поле