Curses

curses(カーシス、カーズィス)はUNIX系システムでの端末制御ライブラリである。テキストユーザインタフェース(TUI)アプリケーションを作成するのに使われる。名称は“cursor optimization”に由来する。文字のみを表示する端末(例えばVT100)を表示に使うアプリケーションが画面を管理する機能を集めたライブラリである[1]

概要

cursesのAPIの解説書はいくつかある[2]。最も一般的な実装では、数千に及ぶ様々な端末の機能を示したデータベースを利用している。端末データベースではなく専用デバイスドライバを採用している実装としては PDCurses があるが、そのような例は少ない。ほとんどの実装ではterminfoを使っており、一部はtermcapを使っている。古い端末でもほとんどの場合動作可能であり、単純な点が長所である。ビットマップ画像や様々なフォントを必要としないアプリケーションでは、X Window System を使うよりも curses を使った実装の方が単純で高速である。

curses を使用すると、プログラマは特定の端末装置を考慮せずに文字ベースのアプリケーションを書くことができる。cursesライブラリは、実行時に使用している端末装置を判別して適切に制御コードを送ることができる。curses では、実画面を1つ以上のウィンドウをマップしたものとしてモデル化する。各ウィンドウは文字の行列であり、プログラマは必要なウィンドウを実際に表示させたいように内容を設定して、curses に対して画面の更新を指示する。curses は内容の更新状況を調べ、実際に画面上で書き換える必要があるところだけを書き換えるような制御文字列を生成する。つまり、プログラマは画面にどう表示したいのかを文字行列で示し、curses がそれを実際に表示する作業を受け持つ。

他の言語で
Deutsch: Curses
español: Curses
français: Curses
한국어: Curses
русский: Curses