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