Как работают интерактивные консольные программы?

StackOverflow https://stackoverflow.com/questions/4181047

  •  10-10-2019
  •  | 
  •  

Вопрос

Я хочу понять, как такие программы, как vim или же man работать в оболочке. Как они позволяют пользователю прокрутить, обновить дисплей и тому подобное?

Кажется, они взаимодействуют с какой -то консольной библиотекой и, следовательно, манипулируют тем, что мы видим. Что на самом деле происходит?

Это было полезно?

Решение

Терминал имеет то, что называется Драйвер терминала. Анкет Это не драйвер в смысле интерфейса с аппаратным обеспечением, а скорее интерпретирует определенные последовательности символов, которые заставляют его выполнять такие операции, как прокрутка, текстовые атрибуты и так далее.

Последовательности символов хранятся в база данных TermInfo. Анкет Библиотека под названием проклятия (или его современный эквивалент, Ncurses) считывает базу данных TermInfo и издает различные последовательности символов на основе вызванных функций.

Отделение базы данных TermInfo от самого драйвера терминала позволяет программам поддерживать ряд терминалов, таких как XERM, текстовая консоль, сетевые клиенты, даже удаленные тупые терминалы, подключенные через последовательную линию.

Другие советы

Вот отличный способ:

Вы, вероятно, хотите взглянуть на главу 17 - с помощью терминала.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top