Могу ли я использовать 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) страница справочника).

Другие вопросы по тегам