Предварительное примечание: Под переносным здесь я подразумеваю кросс-терминал, а не кросс-платформу или кроссплатформенность.Разные терминалы поддерживают разные коды для разных цветов (почему между прочим?)
Итак, я хочу прохладные ПОРТАТИВНЫЕ цвета терминала.Поиск по Google, вы найдете те же старые варианты, но я не хочу их.Я хочу вывод Терминал.Подобно тому, как запуск apt
иногда дает коричневатый текст, я не хочу окна в ncurses, и при этом я не хочу жестко кодировать управляющие коды ANSI, такие как \033[31m
.Это два традиционных варианта, которые я НЕ ХОЧУ.
То, что я хочу, выглядит следующим образом:
$ some program that doesn't really matter
blah blah earlier terminal output
$ colortest
Hello, World, but this part of the text would be in blue or something!
Нет окна, которое удаляет мой предыдущий вывод терминала или использует альтернативный буфер экрана или что-то еще.Я хочу сделать в C то, что я могу сделать в bash с tput setaf
и printf
.Но я ничего не могу найти.Кажется, нет библиотеки для этого.Единственные варианты, которые я могу найти, это «Использовать ncurses», которое вызывает окно (насколько я знаю, я искал ncurses без окон, но получил только загрузку окон для ncurses), или «Жесткие коды ANSI», которые также выиграли 'т работа.Есть ли какая-нибудь библиотека для этого или мне нужно будет что-то написать самому, запрашивая такие вещи, как terminfo
или не дай бог termcap
?Я не нашел этот вопрос раньше, простите меня, если он есть, но я устал от двух неудовлетворительных обходных путей.Мой единственный вариант до сих пор звонил tput
через popen
и тому подобное.