名称
termcap: tgetent(), tgetflag(), tgetnum(), tgetstr(), tgoto(),
tputs() ― /usr/share/lib/termcap にあるアクセスルーチンのエミュレート
構文
#include <curses.h>
int tgetent(char *bp, const char *name);
int tgetnum(const char *id);
int tgetflag(const char *id);
char *tgetstr(const char *id, char **area);
char *tgoto(char *cm, int destcol, int destline);
int tputs(char *cp, int affcnt, int (*outc)(int));
説明
上記の関数は、コンパイルされたターミナル機能データベースから機能を取り出して使います terminfo(4) を参照)。 これらの関数は、エミュレーションルーチンです。
| tgetent() | | ターミナル名 name に対するコンパイルされたエントリーを取り出し、プログラマがアクセス可能なバッファーに代入します。
以前の termcap ルーチンと違って、すべての機能文字列 (カーソルのアドレス情報およびカーソルのパディング情報は除く)
は、 tgetent() から値が返されるときにはすでに内部でコンパイルされ保存されています。
バッファーポインター bp は、エミュレーションでは必要ないので無視されます。
意味のある情報を示すとは限りません。 tgetent() は、 terminfo ディレクトリにアクセスできない場合、またはターミナル名 name に対する機能ファイルがない場合は -1、問題がない場合は 0 を返します。
環境変数 TERMINFO が設定されている場合、 tgetent() はまず TERMINFO/?/name (? の所には name の先頭の文字が入ります) を調べ、そのファイルがアクセス不可能なら /usr/share/lib/terminfo/?/name を調べます。 |
| tgetnum() | | 機能 id である id の数値を取り出し、数値がターミナルに該当しない場合は-1 を返します。 tgetnum() は、数値を持つ機能にのみ役立ちます。 |
| tgetflag() | | 指定した機能がターミナルのエントリーにある場合は 1 を返し、ない場合は 0 を返します。 tgetflag() は、本質的に二値のブール代数の
(すなわち、 terminfo(4) にあるかないかどちらかの)
機能にのみ利用されます。 |
| tgetstr() | | 機能 id である id の文字列値を指すポインターを返します。 さらに、
area が NULL ポインターでないとき、 tgetstr() は機能を area にあるバッファーに置き、領域ポインターを先に進めます。
カーソルのアドレス指定情報およびパディング情報を除いて、返された文字列の機能はコンパイルされます。 tgetstr() は文字列値を持つ機能にのみ利用されます。 |
| tgoto() | | cm からデコードされたカーソルのアドレス指定文字列を返し、 destline 行の destcol カラムに進みます。 tgoto() がこの時点でタブを出力できるので、 tgoto() を呼び出すプログラムでは
TAB3 ビットをオフにする必要があります termio(7) を参照)。
Ctrl-I を非破壊スペースなどの他の機能に使用しているターミナルもあるため、通常、 termcap を使うプログラムでは、とにかく
TAB3 をオフにしてください。認識できない % シーケンスが指定されていると、 tgoto() は
[OOPS] を返します。 |
| tputs() | | cp 文字列のパディング情報をデコードします。 affcnt は、この処理が適用する行数を指定し、適用できない場合は 1 を指定します。 outc は、各文字とともに順次呼び出されるルーチンです。 terminfo 変数 pad_char は、null (@) が適用されない場合に使う pc 機能からの) パッド文字を含みます。 |
警告
以下のルーチンは、バックグラウンドで実行されるプログラム で使用されることを目的としたものではありません。
廃止インタフェース
tgetent(), tgetnum(), tgetflag(), tgetstr(), tgoto(),
および tputs() は、将来廃止される予定です。
ファイル
| /usr/lib/libcurses.a
-lcurses |
| | | ライブラリ |
| /usr/share/lib/terminfo/?/* |
| | | データベース |