TERMCAP(3X) — UNIX Programmer’s Manual
名称
tgetent, tgetnum, tgetflag, tgetstr, tgoto, tputs − 端末独立の操作ルーチン
形式
char PC;
char ∗BC;
char ∗UP;
short ospeed;
tgetent(bp, name)
char ∗bp, ∗name;
tgetnum(id)
char ∗id;
tgetflag(id)
char ∗id;
char ∗
tgetstr(id, area)
char ∗id, ∗∗area;
char ∗
tgoto(cm, destcol, destline)
char ∗cm;
tputs(cp, affcnt, outc)
register char ∗cp;
int affcnt;
int (∗outc)();
解説
これらの関数は、 端末機能データベース termcap(5) から機能を 引き出し、 使用します。 これらのルーチンは低レベルルーチンです。 高位レベルパッケージについては curses(3X) を参照してください。
tgetent は、 端末 name に対するエントリを求め、 バッファ中の bp の位置に置きます。 bp は大きさ 1024 のキャラクタバッファで、 その後に続く tgetnum および、 tgetflag、 tgetstr の呼び出しすべてを 通じて保持されなければなりません。 tgetent は、 termcap ファイルをオープンできないときは −1 を、 与えられた端末名がエントリを 持たないときは 0 を、 正常に実行されたときは 1 を返します。 この関数は、 TERMCAP 変数に対する環境を調べます。 値が存在し、 その値がスラッシュ以外の文字で始まり、 端末のタイプ( name )が環境文字列 TERM と等しいとき、 termcap ファイルの読み出しの代わりに TERMCAP 文字列が使用されます。 値がスラッシュで始まる場合、 その文字列は /etc/termcap の代わりのパス名として使用されます。 これにより、 tgetent を呼び出すプログラムへのエントリが速くなると同時に、 新しい端末の記述のデバッグが容易になり、 またファイル /etc/termcap を記述できない場合にユーザの端末用のものを 簡単に作成することができます。
tgetnum は、 機能 id の数値を得、 これがその端末に対して与えられたものではない場合、 −1 を返します。 tgetflag は、 指定された機能が端末のエントリ中に存在するとき 1 を返し、 存在しないとき 0 を返します。 tgetstr は、 機能 id の文字列の値を返し、 その値をバッファ中の area の位置におき、 area ポインタの値を進めます。 この関数は、 termcap(5) に記述されているこのフィールドに対する省略形を デコードします。 ただし、 カーソルアドレッシングおよびパディングの情報に対するものは除きます。 機能が見つからないとき、 tgetstr は NULL を返します。
tgoto は、 cm からデコードされ destline 行の destcol カラムに置かれるカーソルアドレッシング文字列を返します。 これは、 返される文字列中に ^Dまたは^@ が入ってしまうことを防ぐため、 必要に応じて外部変数 UP (up 機能より)および BC (bs ではなく bc が与えられている場合)を 使用します。 ( tgoto を 呼び出すプログラムは、 XTABS ビットがオフになっていることを 確かめてください。 これは、 tgoto がタブを出力することがあるためです。 端末によっては、 Control-I を非破壊空白など、 他の機能として使用しているため、 termcap を 使用するプログラムは、 一般に XTABS を オフにしなければならないことに注意してください。) 解読できない % シーケンスが与えられると、 tgoto は “OOPS” を返します。
tputs は、 文字列 cp に先行するパディングの情報をデコードします。 affcnt は、その動作の影響を受けた行数を与えます。 適用できない場合は、 この値は 1 になります。 outc は、各キャラクタを順に引数として呼び出されるルーチンです。 外部変数 PC は、 ナル(^@)が不適切な場合には、 使用されるパッドキャラクタ(pc機能より)を 含んでいなければなりません。
関連ファイル
/usr/lib/libtermcap.a−ltermcap ライブラリ
/etc/termcapデータベース
関連事項
著者
William Joy
NEWS-OSRelease 3.3