setupterm 子例程

用途

使用 terminfo 数据库中的值初始化终端结构。

Curses 库 (libcurses.a)

语法

#include <curses.h>
#include <term.h>
setupterm( Term,  FileNumber,  ErrorCode)
char *Term;
int FileNumber;
int *ErrorCode;

描述

setupterm 子例程确定输出终端上可用的行数和列数。 setupterm 子例程调用 termdef 子例程来定义屏幕上的行数和列数。 如果 termdef 子例程无法提供此信息,那么 setupterm 子例程将使用 terminfo 数据库中的值。

setupterm 子例程使用 terminfo中与终端相关的功能来初始化终端结构。 此例程由 initscrnewterm 子例程自动调用。 setupterm 子例程直接处理 terminfo 数据库。

其中两个与终端相关的功能是线条和列。 setupterm 子例程以如下方式填充终端结构中的行和列字段:

  1. 如果设置了环境变量 LINESCOLUMNS ,那么 setupterm 子例程将使用这些值。
  2. 如果未设置环境变量,那么 setupterm 子例程从 tty 子系统获取行和列信息。
  3. 作为最后的手段, setupterm 子例程使用 terminfo 数据库中定义的值。
    注: 这些值可能与 terminfo 数据库中的值相同,也可能不相同。

最简单的调用是 setupterm ((char *) 0 , 1 , (int *) 0),它使用所有缺省值。

在调用 setupterm 子例程之后, cur_term 全局变量设置为指向终端功能的当前结构。 通过对每个终端调用 setupterm 子例程,然后保存并恢复 cur_term 变量,程序一次可以使用多个终端。

参数

描述
ErrorCode 指定要将错误代码返回到的整数的指针。 如果为此参数传递了空指针 (0) ,那么不会返回任何状态。 错误导致 setupterm 子例程打印错误消息并退出,而不是返回。
FileNumber 指定输出文件文件描述符 (1 等于标准输出)。
术语 指定终端名称。 如果为此参数传递 0 ,那么将使用 $TERM 环境变量的值。

返回值

下列其中一个状态值存储在 ErrorCode 参数指向的整数中:

描述
第 1 年 成功完成。
重大安全事件数量 没有这样的终端。
-1 查找 terminfo 数据库时发生错误。

示例

要使用 $TERM 作为终端名称,标准输出作为输出并不返回错误代码来确定当前终端的功能,请输入:

setupterm((char*) 0, 1, (int*) 0);