putp , tput 子例程

用途

将命令输出到终端。

Curses 库 (libcurses.a)

语法

#include <curses.h>

int putp(const char *str);

int tputs(const char *str,
int affcnt,
int (*putfunc)(int));

描述

这些子例程将包含在 terminfo 数据库中的命令输出到终端。

putp 子例程等同于 tput(str , 1 , putchar)。 putp 子例程的输出始终转至 stdout ,而不是 setupterm 子例程中指定的文件。

tput 子例程将 str 输出到终端。 str 自变量必须是 terminfo 字符串变量或来自 tgetstrtgototi手势tparm 子例程的返回值。 affcnt 参数是受影响的行数,或者 1 (如果不适用)。 如果 terminfo 数据库指示正在使用的终端需要在生成的字符串中的任何命令之后进行填充,那么 tput 子例程会在 terminfo 数据库指示的位置将填充字符插入发送到终端的字符串中。 tput 子例程通过调用用户提供的 putfunc 子例程输出生成的字符串的每个字符 (请参阅下文)。

用户提供的 putfunc 子例程 (指定为 tput 子例程的自变量) 是 putchar 或具有相同原型的其他子例程。 tput 子例程忽略 putfunc 子例程的返回值。

参数

描述
*STR  
affcnt  
* putfunc  

返回值

成功完成后,这些子例程将返回 "正常"。 否则,将返回 ERR。

示例

对于 putp 子例程:

调用 tput (my_string, 1 , putchar) 子例程,输入:

char *my_string;
putp(my_string);

对于 tput 子例程:

  1. 要使用用户定义的 putchar-like 子例程 my_putchar输出清除屏幕序列,请输入:
    int_my_putchar();
    tputs(clear_screen, 1 ,my_putchar);
  2. 输出用于将光标移动到坐标 x= 的转义序列40, y=18通过用户定义的 putchar类似子例程my_putchar,请输入:
    int_my_putchar();
    tputs(tparm(cursor_address, 18, 40), 1, my_putchar);