У кого-нибудь есть больше информации о стандартном входе и стандартном выходе? - PullRequest
0 голосов
/ 19 августа 2010

Я не очень заинтересован в разработке графического интерфейса (слишком много работы), и я хочу знать, как работают такие программы, как vim и greed, как vim может изменять свой стандарт, не печатая его? все снова ?, и я часто вижу выходные данные из терминальных программ в ярких цветах, есть ли какой-то язык разметки, который сообщает терминалу, какие цвета создавать шрифты? что программа ожидает ввода? или она просто позволяет вводить данные в стандартный режим, когда программа делает паузу? и как я могу получить программу для чтения стандарта другой программы? Я использую c ++ в качестве языка на терминале Ubuntu linux 10.04, спасибо!

Ответы [ 5 ]

3 голосов
/ 19 августа 2010

Для интерактивного программирования терминала проверьте Curses .Эта библиотека (и более поздние NCurses) позволяет вам программировать GUI, используя терминал.Каждый тип терминала поддерживает различные функции, такие как позиционирование курсора, цвета и т. Д. (Задокументировано в базе данных terminfo).

Информацию о перенаправлении можно найти в статье Streams .Каждый процесс может взаимодействовать со своим родительским процессом через 3 потока - stdout / stderr / stdin.

Я бы посчитал Unix Power Tools отличным ресурсом для вопросов такого типа.

1 голос
/ 19 августа 2010
  1. проклятия / Ncurses
  2. TERMCAP / TERMINFO
  3. Поскольку FD0 читается из.
  4. Клавиши нажимаются в стандартный ввод терминалом, когда они происходят, и они выдвигаются всякий раз, когда он читается.
  5. popen(3), pipe(2) или трубопровод в оболочке.
1 голос
/ 19 августа 2010

Ответ curses.

0 голосов
/ 19 августа 2010

Чтобы ответить только на ваш первый вопрос (одно правило в StackOverflow гласит, что вы задаете по одному вопросу на вопрос), он может использовать Экранирующие коды ANSI , хотя, вероятно, он использует Curses -подобная библиотека.

0 голосов
/ 19 августа 2010

Если вы хотите отформатированный вывод на экран, вам нужно посмотреть termcap

Использование вывода из других программ выполняется с использованием pipe

...