Вы не можете. Программа, написанная с использованием curses
, не выводит поток символов, как типичная программа командной строки, или даже одна, использующая трюк обратного пространства. Вместо этого он использует специфические для операционной системы вызовы, такие как ioctl
и конкретные escape-последовательности для реализации, подобные описанным в TermInfo. Как правило, такие программы в Unix-системах являются простыми интерфейсами для библиотек, которые выполняют всю необходимую работу, и ваш лучший вариант обычно заключается в использовании этих библиотек (запись JNI-обертки, если таковая отсутствует).
В случае top
вы можете видеть, как программа считывает информацию о процессе из ОС в своем исходном коде, доступную как часть the procps package.
Этот код дает пустой BufferedReader, выход не может быть разобран таким образом –
Если вышеприведенный код ничего не печатает, то команда 'top' не печатает вывод? – sanbhat
правильный, вероятно, с помощью какой-то курсорной особой вещи, и это именно то, что нужно опереться на разбор. Его четкий синтаксический анализ, выполненный bash, поскольку он выводит его на мой экран:/Может быть, я могу начать bash в объекте Process и начать сверху с этого процесса bash и получить вывод?: S –