我的理解是,函数char *tparm(char *str, ...);
只是将给定的字符串str
转换为一个扩展的参数化版本,这对于stdout输出函数如printf
或cout
来说是很好的。但是man page提到-
参数化的字符串应该通过tparm来实例化它们。所有terminfo字符串[包括tparm的输出]应使用tputs或putp打印。
所以我可以解析terminfo条目并对它们使用tparm()
来传递适当的参数,然后使用stdout输出函数输出它们吗?另外,我正在检查非tty输出并忽略这些方法,这样就覆盖了基类。
最佳答案
当然可以。但是,一些功能字符串包括填充和时间延迟,这tparm
假定将由tputs
解释。
例如,flash
功能将使用时间延迟,并将其传递给tputs
(使用terminfo(5)
手册页中描述的语法)。