У меня есть более крупное приложение C++, которое полностью управляется консолью/терминалом. Печатается много отладочной информации, однако она начинает запутываться. Важная информация теряется между общей информацией о состоянии различных модулей. Отключение этих выходов невозможно, так как они фактически являются важным индикатором неисправностей.
Вместо этого я подумал, что может быть более полезным «разделить» экран, т.е. иметь определенный вывод в своего рода дополнительной области на экране (терминал). Это можно рассматривать как строку состояния (возможно, несколько строк).
Я мог бы легко сделать это с кодами ANSI, однако все еще есть много printfs, которые всегда искажают вывод. Также прокрутка нарушается таким образом.
Вариантом может быть использование ncurses, однако я не хочу портировать на него все приложение. Я пытался выяснить, могу ли я отображать нормальные выходные данные printf в приложении ncurses (что-то вроде терминала в терминальной консоли :-)), но не нашел.
Я ищу любое предложение, которое позволило бы мне легко добавить что-то вроде этого:
- иметь область фиксированного размера (верхние N строк) на терминале, выводя некоторую информацию о состоянии
- остальная часть экрана показывает вывод printf
- при прокрутке область/строка состояния фиксированного размера не должна иметь неблагоприятного эффекта (т.е. я хочу правильно прокручивать вывод printf, не теряя его!)
Код будет работать на компьютерах с Linux на ноутбуке (обычно с использованием терминала gnome) или удаленно через соединение ssh.