В настоящее время я пытаюсь написать минимальный терминальный мультиплексор, используя ncurses. Однако, когда я пытаюсь сделать execv
оболочку, она не печатает в окне и вместо этого запускает новый подпроцесс, который принимает управление окном (т. Е. Игнорирует ncurses).Shell в окне ncurses?
Как я могу предотвратить это и контролировать ncurses? Есть ли способ получить tty и контролировать это?
EDIT
Благодаря Росс Ридж в комментариях, теперь я знаю, что мне нужно, чтобы создать псевдо-терминал, который я тогда прочитал в Ncurses окно. Однако я не могу понять, как заставить stdout печатать в окне ncurses. Есть ли функция ncurses, которая считывает дескрипторы файлов? Или мне нужно использовать read()
с printw()
как-нибудь?
Вам нужно будет использовать терминал psuedo. Это не будет так легко, как вы надеялись. –
Посмотрите, что делает GNU mc (midnight commander). Он реализует нечто похожее на то, что вы хотите. – fuz