Curses
Curses(カーシス、カーズィス)はUNIX系システムでの端末制御ライブラリである。テキストユーザインタフェース(TUI)アプリケーションを作成するのに使われる。Ken Arnold が開発し、BSD UNIX の一部としてリリースされ、ローグというゲームなどで使用された。curses は各種端末の機能をデータベース化した terminfo を使っている。
curses のAPIは、移植性が高く、単純である。ビットマップ画像や様々なフォントを必要としないアプリケーションでは、X Window Systemを使うよりも curses を使った方が簡単で高速になる。
curses を使用すると、プログラマは特定の端末装置を考慮せずに文字ベースのアプリケーションを書くことができる。cursesライブラリは、実行時に使用している端末装置を判別して適切に制御コードを送ることができる。curses では、実画面を1つ以上のウィンドウをマップしたものとしてモデル化する。各ウィンドウは文字の行列であり、プログラマは必要なウィンドウを実際に表示させたいように内容を設定して、curses に対して画面の更新を指示する。curses は内容の更新状況を調べ、実際に画面上で書き換える必要があるところだけを書き換えるような制御文字列を生成する。つまり、プログラマは画面にどう表示したいのかを文字行列で示し、curses がそれを実際に表示する作業を受け持つ。
また、一部の解説ページでは、viエディタで curses が使われているという趣旨の解説が記載されている場合があるが、実際にはその逆で、viのカーソル移動のコードを参考にして curses が書かれた[要出典]。
[編集] 後継
ncurses は curses の代替として Linux、OpenBSD、FreeBSD、NetBSD 向けにGNUプロジェクトで作られたライブラリであり、その後、POSIX準拠のUNIXに移植されていった。PDCurses (Public Domain Curses)はUNIX以外の DOS、Windows、OS/2など向けに作られた curses とほぼ同じ機能を提供するライブラリである。クロスプラットフォームのゲームなどで、Linux では ncurses、Windows では PDCurses を使っているものがある。
[編集] 関連項目
[編集] 外部リンク
すべて英文。