ncurses は、Unix 系オペレーティングシステムで利用される端末制御ライブラリであり、文字表示を基本とするターミナル上で、画面を持つ対話的なアプリケーションを作成するための基盤を提供する。
ncurses はテキストユーザインタフェース (TUI) そのものではなく、TUI を支える基盤技術である。具体的には、文字セル単位での画面描画、差分更新による効率的な再描画、入力イベントの取得、描画領域を分割するウィンドウ機構、文字属性や色の管理など、端末上で対話的な画面を構成するための基本的な機能を提供する。
概要 ncursesは、4.4 BSDに含まれていたcursesライブラリの後継として開発された実装であり、名称は “new curses” に由来する。ncurses は、既存の curses 向けプログラムとの互換性を維持しながら、安定した動作を実現することを目的として設計された。
ncurses では、アプリケーションが扱う仮想的な画面と、実際に端末へ出力される画面とを分離して管理する方式を採用している。これにより、画面全体を毎回描き直すのではなく、変更があった部分のみを更新することが可能となり、低速な回線やリモートシェル環境においても効率的な画面表示が行える。
端末ごとの制御情報には主にterminfoデータベースが用いられるが、互換性のためにtermcapを使うことができる。この仕組みにより、実際のハードウェア端末から端末エミュレータまで、多様な環境で同一のアプリケーションを動作させることが可能となっている。
ncurses の開発と保守は、長年にわたり Thomas E. Dickey が中心となって行っており、現在も事実上のメンテナとしてプロジェクトを主導している。
外部リンク ncurses ホームページ ncurses Programming HOWTO "Writing Programs with NCURSES" by Eric S. Raymond and Zeyd M. Ben-Halim ncurses FAQ by Thomas Dickey A Hacker's Guide to NCURSES
脚注
関連項目 端末 端末エミュレータ curses テキストユーザインタフェース キャラクタユーザインタフェース
ツールキット Development Kit for C++
言語バインディング Ada95用 Common Lisp用 JavaScript用 PHP用 Python用 Ruby用
ディストリビューションとパッケージ Ncurses package for Windows – GnuWin32