Насколько я понимаю, что функция char *tparm(char *str, ...);
просто конвертирует заданную строку str
к расширенной параметризованной версии, которую можно использовать с функциями вывода stdout, такими как printf
или же cout
, Но справочная страница упоминает —
Параметризованные строки должны быть переданы через tparm для их создания. Все строки terminfo [включая выходные данные tparm] должны быть напечатаны с помощью tputs или putp.
Так что я могу разобрать записи terminfo и использовать tparm()
передать им соответствующие параметры и вывести их с помощью функций вывода stdout? Кроме того, я делаю проверки не-tty вывода и игнорирую эти методы, чтобы я покрыл эту базу.
Конечно ты Можно. Но некоторые строки возможностей включают набивка а также задержки по времени, который tparm
предполагает, будет интерпретироваться tputs
.
Например, flash
возможность будет использовать задержки, которые передаются tputs
(используя синтаксис, описанный в terminfo(5)
страница справочника).
Других решений пока нет …