У меня нет большой заинтересованности в проектировании guis (слишком много работы), и я хочу знать, как работают такие программы, как vim и жадность, как это сделать, что vim может изменить стандартную версию без печати всего снова, и я часто вижу вывод терминальных программ в ярких цветах, есть ли какой-то язык разметки, который сообщает терминалу, какие цвета делают шрифты ?, и когда я использую «cin», как терминал знает, что программа ожидает ввода ?, или это просто позволяет помещать вещи в стандартную версию, когда программа приостанавливается? и как я могу получить программу для чтения других стандартов программы? Я использую C++ в качестве языка, на терминале Ubuntu linux 10.04, спасибо!У кого-нибудь есть дополнительная информация о стандарте и стандарте?
ответ
Для интерактивного программирования терминала, проверить Curses. Эта библиотека (и более поздние NCurses) позволяет вам программировать графические интерфейсы с использованием терминала. Каждый тип терминала поддерживает различные функции, такие как позиционирование курсора, цвета и т. Д. (Документируется через базу данных terminfo
).
Для получения информации о переадресации ознакомьтесь с этой статьей на Streams. Каждый процесс может связываться с родительским процессом через 3 потока - stdout/stderr/stdin.
Я бы посмотрел на Unix Power Tools как отличный ресурс для этих типов вопросов.
Ответ curses
.
Чтобы ответить только на ваш первый вопрос (одно домашнее правило на StackOverflow состоит в том, что вы задаете один вопрос на вопрос), он может использовать ANSI escape codes, хотя, вероятно, вместо этого используется библиотека типа Curses.
- проклятий/Ncurses
- TERMCAP/TERMINFO
- Поскольку FD0 считывается из.
- Ключи вставляются в терминал с помощью терминала, когда они происходят, и они выходят каждый раз, когда он читается.
popen(3)
,pipe(2)
, или трубопроводы в оболочке.
Я думаю, что здесь есть 3 или 4 отдельных вопроса. –
Приобретено, потому что искатель хочет знать, как использовать терминальные функции, но не знал, что просить, и поэтому задал кучу связанных вопросов. –