Ncurses

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

Category:GNUプロジェクトのソフトウェア
Category:API
Category:ウィジェット・ツールキット
Category:Cでプログラムされた自由ソフトウェア