Почти все приложения, которые я когда-либо писал, представляли собой графические интерфейсы той или иной формы - HTML / Flex / Swing - и большая часть моих приложений командной строки была чрезвычайно простой, без особого взаимодействия.Самое лучшее, что я когда-либо делал, - это создание простой ascii-игры, которая просто выполняет цикл печати / ввода, снова и снова печатая игровое поле.
Я думал о том, чтобы сделать что-то более сложное,было действительно любопытно, как работают некоторые из более продвинутых приложений командной строки, таких как emacs.В частности, я понятия не имею, как они, похоже, могут иметь интерактивную командную строку, которая реагирует на нажатия клавиш и, кажется, просто работает с буфером в терминале, вместо того, чтобы постоянно проходить через цикл print-> read-> print.Это все просто stdin / stdout kung fu, о котором я не знаю, или это что-то совершенно другое?
Обновление - Я хочу пояснить, что я не пытаюсь спроситьширокий вопрос здесь, возможно, мне просто трудно найти правильные слова.По сути, я не знаю, как заставить emacs работать с использованием stdin / stdout.Использует ли это какой-то механизм, о котором я не знаю, и если да, то что?