В чем заключается хитрость «выходной терминал refre sh» (в отличие от простого вывода)? - PullRequest
0 голосов
/ 09 апреля 2020

Прости мое описание в заголовке. Вот более точное описание:

Когда я использую bazel и clang для компиляции большого количества целей, вывод командной строки не будет продолжать прокручиваться, вместо этого он будет sh при компиляции новой цели. Так что нам не нужно прокручивать, чтобы увидеть результат.

Кто-нибудь знает, что это за хитрость, какой инструмент в этом трубопроводе использовал его?

Мне интересно, можно ли использовать этот трюк из нативного кода на C ++, например, std::cout + спецсимвол, который терминал будет ссылаться на sh? Мой пример использования заключается в том, что мой родной код на c ++ выполняет тысячи циклов, мой обычный вывод будет выводить экран sh. (Использование отладчика не рекомендуется по особым причинам, поэтому я должен ответить на оператор печати)

1 Ответ

1 голос
/ 10 апреля 2020

Bazel реализует это с помощью элементов управления курсором и может быть вызвано флагом --curses. Здесь отслеживается код, который добавляет / очищает индикаторы выполнения Bazel .

Этот параметр определяет, будет ли Bazel использовать элементы управления курсором при выводе на экран. Это приводит к уменьшению прокрутки данных и к более компактному, легко читаемому потоку вывода из Bazel. Это хорошо работает с --color.

Если для этого параметра установлено значение yes, использование элементов управления курсором включено. Если для этого параметра установлено значение no, использование элементов управления курсором отключено. Если для этого параметра установлено значение auto, использование элементов управления курсором будет включено при тех же условиях, что и для --color=auto.

...