日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.3-RELEASE-K, 13.0-RELEASE-K から 13.2-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
ncurses(3X) ncurses(3X) 名称 ncurses - CRT 画面操作と最適化パッケージ 書式 #include <curses.h> 解説 ncurses ライブラリルーチンは、合理的な最適化で文字画面を更新する端末に 依存しない方法を使用者に与えます。この実装は、"新しい curses" (ncurses) で、中断されていた、4.4BSD の古典 (クラシック) curses の代わりに認めら れました。これは、ncurses バージョン 5.9 (パッチ 20140222) について説明 しています。 ncurses ライブラリは、System V Release 4 UNIX の curses ライブラリと (XSI curses としても知られている) XPG4 (X/Open Portability Guide (移植 性ガイド)) curses をエミュレートしています。XSI は、X/Open System Interfaces Extension を略語です。ncurses ライブラリは、ソース形式で自由 に再配布できます。SVr4 curses との違いは、下記の拡張機能と移植性セク ションに要約され、個々のマニュアルページの、それぞれ拡張機能、移植性、 とバグセクションに詳細に説明されています。 また、ncurses ライブラリは、多くの役に立つ拡張を提供しています、すなわ ち、簡単なアドオンのライブラリによって実装することができませんが、ライ ブラリの内部へのアクセスを必要とする機能です。 これらのルーチンを使用するプログラムは、-lncurses オプション、または (生成されているなら) デバッグライブラリ -lncurses_g とリンクしなければ なりません。(また、利用者のシステムインテグレータは、-lcurses と -lcurses_g という名前でこれらのライブラリをインストールしたかもしれませ ん。) ncurses_g ライブラリは、curses アクションを記述する (カレントディ レクトリに 'trace' と呼ばれるファイルで) トレースログを生成します。ま た、代わりの設定セクションを参照してください。 ncurses パッケージは、次をサポートしています: 全体の画面、ウィンドウと 詰め物 (pad) の操作、ウィンドウと詰め物の出力、端末入力の読み込み、端末 と curses 入力と出力オプションの制御、環境問い合わせ (クエリ) ルーチ ン、カラー操作、ソフトラベルキーの使用、terminfo ケーパビリティ、と低レ ベル端末操作ルーチンへのアクセスです。 ライブラリは、呼び出しプログラムが初期化したロケールを使用します。通 常、それは、setlocale で行われます: setlocale(LC_ALL, ""); ロケールが初期化されないなら、ライブラリは、特定の古いプログラムで動作 するために、文字が ISO-8859-1 として印刷可能であると仮定します。利用者 は、ロケールを初期化するべきで、ロケールが設定されなかったとき、ライブ ラリの特定の詳細を当てにするべきではありません。 関数 initscr または newterm は、ウィンドウと画面を処理するその他のルー チンのいずれかが使用される前に、ライブラリを初期化するために、呼び出さ れなければなりません。ルーチン endwin は、終了する前に呼び出されなけれ ばなりません。 (ほとんどの対話型で画面指向のプログラムで望まれる) エコーせずに 1 度に 1 文字ずつ入力を取得するには、次のシーケンスが使用されるべきです: initscr(); cbreak(); noecho(); さらに、ほとんどのプログラムは、次のシーケンスも使用するでしょう: nonl(); intrflush(stdscr, FALSE); keypad(stdscr, TRUE); curses プログラムが実行される前に、端末のタブストップが設定されるべき で、定義されていれば、その初期化文字列が出力されなければなりません。 シェル環境変数 TERM がエクスポートされた後に、tput init コマンドを実行 することによって、これを、行なうことができます。tset(1) は、通常これを 行なう責任があります。[さらなる詳細については、terminfo(5) を参照してく ださい。] ncurses ライブラリは、CRT 画面の全体か一部を表す文字の 2 次元配列とみな すことができる、windows と呼ばれるデータ構造を操作できます。端末画面の サイズである、stdscr と呼ばれるデフォルトのウィンドウが供給されます。そ の他のウィンドウは、newwin で作成できます。 curses は、オーバラップウィンドウを操作しないことに注意してくさい。それ は、panel(3X) ライブラリで行なわれます。これは、使用者が stdscr を使用 できるか、画面にタイルが張られたウィンドウに分割して、stdscr を全く使用 することができないかのいずれかを意味します。2 つの混合は、予測不可能 で、望まれない結果となるでしょう。 ウィンドウは、WINDOW * のように宣言された変数によって参照されます。これ らのデータ構造は、ncurses マニュアルページのここと他のところで記述され たルーチンで操作されます。それらの中で、最も基本的なルーチンは、move と addch です。これらのルーチンのより一般的なバージョンは、ユーザがウィン ドウを指定することを可能にして、w で始まる名前で含まれています。w で始 まらないルーチンは、stdscr に影響します。 ウィンドウを操作するためのルーチンを使用した後、refresh が呼び出され、 ユーザの CRT 画面を stdscr のように見せるように curses に伝えます。ウィ ンドウの文字は、文字についての他の情報は、それぞれの文字とともに格納で きるように、実際のところタイプ chtype (文字と属性データ) です。 pads と呼ばれる特殊なウィンドウもまた操作できます。それらは、画面のサイ ズに制約されず、その内容を完全に表示する必要のないウィンドウです。より 詳細については、curs_pad(3X) を参照してください。 画面上に文字を描画することに加えて、ビデオ属性と色は、表示増強をサポー トしている端末で、下線、リバース (反転) ビデオまたは色のようなモードで 文字を表示することをサポートしています。行描画文字を出力するように指定 することもできます。入力時に、curses は、エスケープシーケンスを送出する 矢印キーとファンクションキーを単一の値に変換することもできます。ビデオ 属性、行描画文字と入力値は、A_REVERSE、ACS_HLINE と KEY_LEFT のような <curses.h> に定義された名前を使用します。 環境変数 LINES と COLUMNS が設定されるなら、またはプログラムがウィンド ウ環境で実行しているなら、環境中の行とカラムの情報は、terminfo によって 読み込まれる情報を上書きします。これは、例えば、画面のサイズが変更可能 な、AT&T 630 レイヤで実行しているプログラムに影響します (環境変数参 照)。 環境変数 TERMINFO が定義されているなら、curses を使用するあらゆるプログ ラムは、標準の場所をチェックする前にローカル端末定義をチェックします。 例えば TERM が att4424 に設定されているなら、コンパイルされた端末定義 は、次の場所で見つけられます。 /usr/share/misc/terminfo/a/att4424 (a は、大きなディレクトリの作成を避けるために att4424 の最初の文字から コピーされます。) しかしながら、TERMINFO が $HOME/myterms に設定される なら、curses は、次の場所を最初にチェックします。 $HOME/myterms/a/att4424 そして、チェックが失敗するなら、次をチェックします。 /usr/share/misc/terminfo/a/att4424 これは、実験的な定義を開発する、または /usr/share/misc/terminfo の書き 込みパーミッションが利用可能でないときに役に立ちます。 整数変数 LINES と COLS は、<curses.h> に定義され、画面のサイズで initscr によって満たされます。定数 TRUE と FALSE は、それぞれ、値 1 と 0 があります。 また、curses ルーチンは、ゴミを含む画面をクリアしたり再描画するようない くらか低レベルの操作のために使用される WINDOW * 変数 curscr を定義しま す。ほんの少しのルーチンでのみ curscr を使用することができます。 ルーチン名と引数名 多くの curses ルーチンは、2 つ以上のバージョンがあります。w が前に付い たルーチンは、ウィンドウ引数を要求します。p が前に付いたルーチンには、 詰め物 (pad) 引数を要求します。接頭辞のないものは、一般的に stdscr を使 用します。 mv が前に付いたルーチンは、適切なアクションを実行する前に移動するために y と x 座標を要求します。mv ルーチンは、別のルーチンを呼び出す前に move を呼び出すこと意味します。座標 y は、常に (ウィンドウの) 行を参照し、座 標 x は、常にカラムを参照します。左上の角は、(1,1) ではなく、常に (0,0) です。 mvw が前に付いたルーチンは、ウィンドウ引数と x と y 座標の両方を取りま す。ウィンドウ引数は、常に座標の前に指定されます。 どの場合でも、win は、影響を受けるウィンドウで、pad は、影響を受ける詰 め物 (pad) です。win と pad は、常にタイプ WINDOW へのポインタです。 オプション設定ルーチンは、値 TRUE または FALSE のブール値フラグ bf を要 求します。bf は、常にタイプ bool です。WINDOW, SCREEN, bool と chtype のような、ライブラリルーチンで使用されるデータタイプのほとんどは、 <curses.h> に定義されています。TERMINAL のような terminfo ルーチンのた めに使用されるタイプは、<term.h> で定義されています。 このマニュアルページは、ライブラリのあらゆる設定に現れる関数について説 明しています。ライブラリの 2 つの共通の設定があります: ncurses 8 ビットの文字を操作する、"通常" のライブラリ。通常の (8 ビット) ライブラリは、chtype データの属性と組み合わされた文 字を格納します。 (対応する文字がない) 属性だけは、chtype または同等な attr_t データに格納されます。いずれにしても、データは、整数のよう なものに格納されます。 WINDOW の各セル (行とカラム) は、chtype として格納されま す。 ncursesw マルチバイト文字 (代わりの設定セクションを参照) を扱う、い わゆる "ワイド" ライブラリ。"ワイド" ライブラリは、"通常" のライブラリの呼び出しのすべてを含んでいます。マルチバイト 文字を格納するデータタイプを使用しておよそ 1/3 以上の呼び出 しを追加しています: cchar_t chtype に対応しています。しかしながら、それは、整数に 収めることができるよりより多くのデータを格納できるので 構造体となっています。文字は、完全な整数の値を必要とす るより十分大きく - そして、1 つのセルに 1 文字以上あり ます。ビデオ属性と色は、構造体の別々のフィールドに格納 されています。 WINDOW 中の各セル (行とカラム) は、cchar_t として格納 されます。 wchar_t "ワイド" 文字を格納します。chtype のように、これは、整 数です。 wint_t wchar_t または WEOF を格納します - 同じではありません が、両方は、同じサイズです。 "ワイド" ライブラリは、"通常" のライブラリの関数と類似して いる新しい関数を提供しています。通常/ワイド変異型の多くに関 連する命名規則があります: "_w" が、名前に挿入されます。例え ば、waddch は、wadd_wch となります。 ルーチン名インデックス 次のテーブルは、各 curses ルーチンと記述されたマニュアルページの名前を リストしています。`*' フラグが付けられたルーチンは、XPG4 または現在の SVr4 に記述されていない ncurses 特有です。 curses ルーチン名 マニュアルページ名 -------------------------------------------- COLOR_PAIR curs_color(3X) PAIR_NUMBER curs_attr(3X) _nc_free_and_exit curs_memleaks(3X)* _nc_freeall curs_memleaks(3X)* _nc_tracebits curs_trace(3X)* _traceattr curs_trace(3X)* _traceattr2 curs_trace(3X)* _tracechar curs_trace(3X)* _tracechtype curs_trace(3X)* _tracechtype2 curs_trace(3X)* _tracedump curs_trace(3X)* _tracef curs_trace(3X)* _tracemouse curs_trace(3X)* add_wch curs_add_wch(3X) add_wchnstr curs_add_wchstr(3X) add_wchstr curs_add_wchstr(3X) addch curs_addch(3X) addchnstr curs_addchstr(3X) addchstr curs_addchstr(3X) addnstr curs_addstr(3X) addnwstr curs_addwstr(3X) addstr curs_addstr(3X) addwstr curs_addwstr(3X) assume_default_colors default_colors(3X)* attr_get curs_attr(3X) attr_off curs_attr(3X) attr_on curs_attr(3X) attr_set curs_attr(3X) attroff curs_attr(3X) attron curs_attr(3X) attrset curs_attr(3X) baudrate curs_termattrs(3X) beep curs_beep(3X) bkgd curs_bkgd(3X) bkgdset curs_bkgd(3X) bkgrnd curs_bkgrnd(3X) bkgrndset curs_bkgrnd(3X) border curs_border(3X) border_set curs_border_set(3X) box curs_border(3X) box_set curs_border_set(3X) can_change_color curs_color(3X) cbreak curs_inopts(3X) chgat curs_attr(3X) clear curs_clear(3X) clearok curs_outopts(3X) clrtobot curs_clear(3X) clrtoeol curs_clear(3X) color_content curs_color(3X) color_set curs_attr(3X) copywin curs_overlay(3X) curs_set curs_kernel(3X) curses_version curs_extend(3X)* def_prog_mode curs_kernel(3X) def_shell_mode curs_kernel(3X) define_key define_key(3X)* del_curterm curs_terminfo(3X) delay_output curs_util(3X) delch curs_delch(3X) deleteln curs_deleteln(3X) delscreen curs_initscr(3X) delwin curs_window(3X) derwin curs_window(3X) doupdate curs_refresh(3X) dupwin curs_window(3X) echo curs_inopts(3X) echo_wchar curs_add_wch(3X) echochar curs_addch(3X) endwin curs_initscr(3X) erase curs_clear(3X) erasechar curs_termattrs(3X) erasewchar curs_termattrs(3X) filter curs_util(3X) flash curs_beep(3X) flushinp curs_util(3X) get_wch curs_get_wch(3X) get_wstr curs_get_wstr(3X) getattrs curs_attr(3X) getbegx curs_legacy(3X)* getbegy curs_legacy(3X)* getbegyx curs_getyx(3X) getbkgd curs_bkgd(3X) getbkgrnd curs_bkgrnd(3X) getcchar curs_getcchar(3X) getch curs_getch(3X) getcurx curs_legacy(3X)* getcury curs_legacy(3X)* getmaxx curs_legacy(3X)* getmaxy curs_legacy(3X)* getmaxyx curs_getyx(3X) getmouse curs_mouse(3X)* getn_wstr curs_get_wstr(3X) getnstr curs_getstr(3X) getparx curs_legacy(3X)* getpary curs_legacy(3X)* getparyx curs_getyx(3X) getstr curs_getstr(3X) getsyx curs_kernel(3X) getwin curs_util(3X) getyx curs_getyx(3X) halfdelay curs_inopts(3X) has_colors curs_color(3X) has_ic curs_termattrs(3X) has_il curs_termattrs(3X) has_key curs_getch(3X)* hline curs_border(3X) hline_set curs_border_set(3X) idcok curs_outopts(3X) idlok curs_outopts(3X) immedok curs_outopts(3X) in_wch curs_in_wch(3X) in_wchnstr curs_in_wchstr(3X) in_wchstr curs_in_wchstr(3X) inch curs_inch(3X) inchnstr curs_inchstr(3X) inchstr curs_inchstr(3X) init_color curs_color(3X) init_pair curs_color(3X) initscr curs_initscr(3X) innstr curs_instr(3X) innwstr curs_inwstr(3X) ins_nwstr curs_ins_wstr(3X) ins_wch curs_ins_wch(3X) ins_wstr curs_ins_wstr(3X) insch curs_insch(3X) insdelln curs_deleteln(3X) insertln curs_deleteln(3X) insnstr curs_insstr(3X) insstr curs_insstr(3X) instr curs_instr(3X) intrflush curs_inopts(3X) inwstr curs_inwstr(3X) is_cleared curs_opaque(3X)* is_idcok curs_opaque(3X)* is_idlok curs_opaque(3X)* is_immedok curs_opaque(3X)* is_keypad curs_opaque(3X)* is_leaveok curs_opaque(3X)* is_linetouched curs_touch(3X) is_nodelay curs_opaque(3X)* is_notimeout curs_opaque(3X)* is_scrollok curs_opaque(3X)* is_syncok curs_opaque(3X)* is_term_resized resizeterm(3X)* is_wintouched curs_touch(3X) isendwin curs_initscr(3X) key_defined key_defined(3X)* key_name curs_util(3X) keybound keybound(3X)* keyname curs_util(3X) keyok keyok(3X)* keypad curs_inopts(3X) killchar curs_termattrs(3X) killwchar curs_termattrs(3X) leaveok curs_outopts(3X) longname curs_termattrs(3X) mcprint curs_print(3X)* meta curs_inopts(3X) mouse_trafo curs_mouse(3X)* mouseinterval curs_mouse(3X)* mousemask curs_mouse(3X)* move curs_move(3X) mvadd_wch curs_add_wch(3X) mvadd_wchnstr curs_add_wchstr(3X) mvadd_wchstr curs_add_wchstr(3X) mvaddch curs_addch(3X) mvaddchnstr curs_addchstr(3X) mvaddchstr curs_addchstr(3X) mvaddnstr curs_addstr(3X) mvaddnwstr curs_addwstr(3X) mvaddstr curs_addstr(3X) mvaddwstr curs_addwstr(3X) mvchgat curs_attr(3X) mvcur curs_terminfo(3X) mvdelch curs_delch(3X) mvderwin curs_window(3X) mvget_wch curs_get_wch(3X) mvget_wstr curs_get_wstr(3X) mvgetch curs_getch(3X) mvgetn_wstr curs_get_wstr(3X) mvgetnstr curs_getstr(3X) mvgetstr curs_getstr(3X) mvhline curs_border(3X) mvhline_set curs_border_set(3X) mvin_wch curs_in_wch(3X) mvin_wchnstr curs_in_wchstr(3X) mvin_wchstr curs_in_wchstr(3X) mvinch curs_inch(3X) mvinchnstr curs_inchstr(3X) mvinchstr curs_inchstr(3X) mvinnstr curs_instr(3X) mvinnwstr curs_inwstr(3X) mvins_nwstr curs_ins_wstr(3X) mvins_wch curs_ins_wch(3X) mvins_wstr curs_ins_wstr(3X) mvinsch curs_insch(3X) mvinsnstr curs_insstr(3X) mvinsstr curs_insstr(3X) mvinstr curs_instr(3X) mvinwstr curs_inwstr(3X) mvprintw curs_printw(3X) mvscanw curs_scanw(3X) mvvline curs_border(3X) mvvline_set curs_border_set(3X) mvwadd_wch curs_add_wch(3X) mvwadd_wchnstr curs_add_wchstr(3X) mvwadd_wchstr curs_add_wchstr(3X) mvwaddch curs_addch(3X) mvwaddchnstr curs_addchstr(3X) mvwaddchstr curs_addchstr(3X) mvwaddnstr curs_addstr(3X) mvwaddnwstr curs_addwstr(3X) mvwaddstr curs_addstr(3X) mvwaddwstr curs_addwstr(3X) mvwchgat curs_attr(3X) mvwdelch curs_delch(3X) mvwget_wch curs_get_wch(3X) mvwget_wstr curs_get_wstr(3X) mvwgetch curs_getch(3X) mvwgetn_wstr curs_get_wstr(3X) mvwgetnstr curs_getstr(3X) mvwgetstr curs_getstr(3X) mvwhline curs_border(3X) mvwhline_set curs_border_set(3X) mvwin curs_window(3X) mvwin_wch curs_in_wch(3X) mvwin_wchnstr curs_in_wchstr(3X) mvwin_wchstr curs_in_wchstr(3X) mvwinch curs_inch(3X) mvwinchnstr curs_inchstr(3X) mvwinchstr curs_inchstr(3X) mvwinnstr curs_instr(3X) mvwinnwstr curs_inwstr(3X) mvwins_nwstr curs_ins_wstr(3X) mvwins_wch curs_ins_wch(3X) mvwins_wstr curs_ins_wstr(3X) mvwinsch curs_insch(3X) mvwinsnstr curs_insstr(3X) mvwinsstr curs_insstr(3X) mvwinstr curs_instr(3X) mvwinwstr curs_inwstr(3X) mvwprintw curs_printw(3X) mvwscanw curs_scanw(3X) mvwvline curs_border(3X) mvwvline_set curs_border_set(3X) napms curs_kernel(3X) newpad curs_pad(3X) newterm curs_initscr(3X) newwin curs_window(3X) nl curs_outopts(3X) nocbreak curs_inopts(3X) nodelay curs_inopts(3X) noecho curs_inopts(3X) nofilter curs_util(3X)* nonl curs_outopts(3X) noqiflush curs_inopts(3X) noraw curs_inopts(3X) notimeout curs_inopts(3X) overlay curs_overlay(3X) overwrite curs_overlay(3X) pair_content curs_color(3X) pechochar curs_pad(3X) pnoutrefresh curs_pad(3X) prefresh curs_pad(3X) printw curs_printw(3X) putp curs_terminfo(3X) putwin curs_util(3X) qiflush curs_inopts(3X) raw curs_inopts(3X) redrawwin curs_refresh(3X) refresh curs_refresh(3X) reset_prog_mode curs_kernel(3X) reset_shell_mode curs_kernel(3X) resetty curs_kernel(3X) resizeterm resizeterm(3X)* restartterm curs_terminfo(3X) ripoffline curs_kernel(3X) savetty curs_kernel(3X) scanw curs_scanw(3X) scr_dump curs_scr_dump(3X) scr_init curs_scr_dump(3X) scr_restore curs_scr_dump(3X) scr_set curs_scr_dump(3X) scrl curs_scroll(3X) scroll curs_scroll(3X) scrollok curs_outopts(3X) set_curterm curs_terminfo(3X) set_term curs_initscr(3X) setcchar curs_getcchar(3X) setscrreg curs_outopts(3X) setsyx curs_kernel(3X) setterm curs_terminfo(3X) setupterm curs_terminfo(3X) slk_attr curs_slk(3X)* slk_attr_off curs_slk(3X) slk_attr_on curs_slk(3X) slk_attr_set curs_slk(3X) slk_attroff curs_slk(3X) slk_attron curs_slk(3X) slk_attrset curs_slk(3X) slk_clear curs_slk(3X) slk_color curs_slk(3X) slk_init curs_slk(3X) slk_label curs_slk(3X) slk_noutrefresh curs_slk(3X) slk_refresh curs_slk(3X) slk_restore curs_slk(3X) slk_set curs_slk(3X) slk_touch curs_slk(3X) standend curs_attr(3X) standout curs_attr(3X) start_color curs_color(3X) subpad curs_pad(3X) subwin curs_window(3X) syncok curs_window(3X) term_attrs curs_termattrs(3X) termattrs curs_termattrs(3X) termname curs_termattrs(3X) tgetent curs_termcap(3X) tgetflag curs_termcap(3X) tgetnum curs_termcap(3X) tgetstr curs_termcap(3X) tgoto curs_termcap(3X) tigetflag curs_terminfo(3X) tigetnum curs_terminfo(3X) tigetstr curs_terminfo(3X) timeout curs_inopts(3X) touchline curs_touch(3X) touchwin curs_touch(3X) tparm curs_terminfo(3X) tputs curs_termcap(3X) tputs curs_terminfo(3X) trace curs_trace(3X)* typeahead curs_inopts(3X) unctrl curs_util(3X) unget_wch curs_get_wch(3X) ungetch curs_getch(3X) ungetmouse curs_mouse(3X)* untouchwin curs_touch(3X) use_default_colors default_colors(3X)* use_env curs_util(3X) use_extended_names curs_extend(3X)* use_legacy_coding legacy_coding(3X)* use_tioctl curs_util(3X) vid_attr curs_terminfo(3X) vid_puts curs_terminfo(3X) vidattr curs_terminfo(3X) vidputs curs_terminfo(3X) vline curs_border(3X) vline_set curs_border_set(3X) vw_printw curs_printw(3X) vw_scanw curs_scanw(3X) vwprintw curs_printw(3X) vwscanw curs_scanw(3X) wadd_wch curs_add_wch(3X) wadd_wchnstr curs_add_wchstr(3X) wadd_wchstr curs_add_wchstr(3X) waddch curs_addch(3X) waddchnstr curs_addchstr(3X) waddchstr curs_addchstr(3X) waddnstr curs_addstr(3X) waddnwstr curs_addwstr(3X) waddstr curs_addstr(3X) waddwstr curs_addwstr(3X) wattr_get curs_attr(3X) wattr_off curs_attr(3X) wattr_on curs_attr(3X) wattr_set curs_attr(3X) wattroff curs_attr(3X) wattron curs_attr(3X) wattrset curs_attr(3X) wbkgd curs_bkgd(3X) wbkgdset curs_bkgd(3X) wbkgrnd curs_bkgrnd(3X) wbkgrndset curs_bkgrnd(3X) wborder curs_border(3X) wborder_set curs_border_set(3X) wchgat curs_attr(3X) wclear curs_clear(3X) wclrtobot curs_clear(3X) wclrtoeol curs_clear(3X) wcolor_set curs_attr(3X) wcursyncup curs_window(3X) wdelch curs_delch(3X) wdeleteln curs_deleteln(3X) wecho_wchar curs_add_wch(3X) wechochar curs_addch(3X) wenclose curs_mouse(3X)* werase curs_clear(3X) wget_wch curs_get_wch(3X) wget_wstr curs_get_wstr(3X) wgetbkgrnd curs_bkgrnd(3X) wgetch curs_getch(3X) wgetn_wstr curs_get_wstr(3X) wgetnstr curs_getstr(3X) wgetstr curs_getstr(3X) whline curs_border(3X) whline_set curs_border_set(3X) win_wch curs_in_wch(3X) win_wchnstr curs_in_wchstr(3X) win_wchstr curs_in_wchstr(3X) winch curs_inch(3X) winchnstr curs_inchstr(3X) winchstr curs_inchstr(3X) winnstr curs_instr(3X) winnwstr curs_inwstr(3X) wins_nwstr curs_ins_wstr(3X) wins_wch curs_ins_wch(3X) wins_wstr curs_ins_wstr(3X) winsch curs_insch(3X) winsdelln curs_deleteln(3X) winsertln curs_deleteln(3X) winsnstr curs_insstr(3X) winsstr curs_insstr(3X) winstr curs_instr(3X) winwstr curs_inwstr(3X) wmouse_trafo curs_mouse(3X)* wmove curs_move(3X) wnoutrefresh curs_refresh(3X) wprintw curs_printw(3X) wredrawln curs_refresh(3X) wrefresh curs_refresh(3X) wresize wresize(3X)* wscanw curs_scanw(3X) wscrl curs_scroll(3X) wsetscrreg curs_outopts(3X) wstandend curs_attr(3X) wstandout curs_attr(3X) wsyncdown curs_window(3X) wsyncup curs_window(3X) wtimeout curs_inopts(3X) wtouchln curs_touch(3X) wunctrl curs_util(3X) wvline curs_border(3X) wvline_set curs_border_set(3X) 戻り値 整数を返すルーチンは、ルーチンの解説で特に断りのない限り、失敗すると ERR を返し、成功して終了すれば、ERR 以外の整数値を返します。 原則として、null ポインタのためのルーチンのチェックは、パラメータとして 渡され、エラーとしてこれを扱います。 すべてのマクロは、setscrreg、wsetscrreg、getyx、getbegyx と getmaxyx を 除いて w バージョンの値を返します。setscrreg、wsetscrreg、getyx、 getbegyx と getmaxyx の返り値は、未定義です (すなわち、これらを、代入文 の右側として使用すべきではありません)。 ポインタを返すルーチンは、エラーの場合 NULL を返します。 環境変数 次の環境シンボルは、ncurses ライブラリの実行時の振る舞いをカスタマイズ するために役立ちます。最も重要なものは、既に詳細に議論されました。 BAUDRATE アプリケーションがファイルへの出力に変更したとき、デバッギングライ ブラリは、この環境変数をチェックします。変数の数値は、ボーレートの ために使用されます。値が見つからないなら、ncurses は、9600 を使用 します。これによって、テスタは、ボーレートに依存するコストを考慮に 入れる反復可能なテストケースを構築できます。 CC 設定されたとき、ロードされた terminfo エントリの command_character (すなわち、cmdch ケーパビリティ) の発生を、この変数の値に変更しま す。ほとんどの terminfo エントリは、この機能を提供しません。 また、この名前は、C コンパイラの名前を表わすために開発環境で使用さ れるので、ncurses は、たまたま単一文字ではなかったら、それを無視し ます。 COLUMNS 画面の文字単位の幅を指定します。通常ウィンドウ環境で実装しているア プリケーションは、それらが実行しているウィンドウの幅を得ることがで きます。COLUMNS 値も端末の画面サイズのいずれも利用可能でないなら、 ncurses は、terminfo データベースで指定されるサイズ (すなわち、 cols ケーパビリティ) を使用します。 利用者のアプリケーションが画面のための正確なサイズを使用することは 重要です。利用者のアプリケーションが、NAWS (Negotiations About Window Size (ウィンドウサイズについての交渉)) を支持しないホストで 実行されるか、または別のユーザとして一時的に実行しているという理由 で、これは、常に実行できません。しかしながら、COLUMNS および/また は LINES を設定することは、ライブラリで使用されるオペレーティング システムから得られる画面サイズを上書きします。 COLUMNS または LINES シンボルのいずれも単独で指定できます。これ は、例えば、65 行の画面を一般的に指定する xterm のような、端末の記 述の古い仕様の欠陥を回避するために主として役に立ちます。最良の結果 のために、lines と cols は、エミュレーションとして実行される端末の ために端末の記述で指定されてはなりません。 画面サイズを決定するための (システムコールを含まず) 外部の環境変数 のすべての使用を無効にするために use_env 関数を使用します。システ ムコールから得られた画面サイズまたは端末のデータベースと一致する COLUMNS または LINES を更新するために use_tioctl 関数を使用しま す。 ESCDELAY ncurses が、例えば、ファンクションキーのような文字シーケンスを待 つ、合計時間をミリ秒単位で指定します。デフォルト値は、1000 ミリ秒 で、ほとんどの使用に十分です。しかしながら、それは、変数を普通でな いアプリケーションに適応させます。 この値を変更したい最も一般的な事例は、例えば、ネットワーク上で実行 している遅いホストで動作するためです。ホストが十分に速く文字を読み 込むことができないなら、あたかも端末が十分に速く文字を送信しなかっ たような同じ効果があります。ライブラリは、それでもタイムアウトに出 会います。 xterm マウスイベントは、xterm から受信された文字シーケンスから組み 立てられることに注意してください。使用者のアプリケーションが重いマ ルチクリックを使用するなら、タイムアウトが、個別のクリックと同様に 組み立てられるマルチクリックイベントに適応されるので、このデフォル ト値を延長したいと思うかもしれません。 環境変数に加えて、この実装は、同じ名前でグローバル変数を提供しま す。移植性のあるアプリケーションは、いずれかの形式の ESCDELAY の存 在に依存するるべきではありませんが、アプリケーションをコンパイルす るとき、グローバル変数ではなく環境変数を設定することは、問題を起こ しません。 HOME 利用者のホームディレクトリを ncurses に伝えます。それは、つぎのよ うに補助端末の記述を読み込み書き込みできる場所です: $HOME/.termcap $HOME/.terminfo LINES COLUMNS のように、画面の文字単位の高さを指定します。詳細な記述につ いては、COLUMNS を参照してください。 MOUSE_BUTTONS_123 これは、OS/2 EMX ポートのみに適応されます。それは、マウスのボタン の順序を指定します。OS/2 は、他のプラットフォームから 3 ボタンマウ スに一貫性なく番号を付けます: 1 = 左 2 = 右 3 = 中間 この変数は、使用者にマウスをカスタマイズさせます。変数は、任意の順 序、例えば、123 または 321 のように、3 つの数値 1-3 でなければなり ません。指定されないなら、ncurses は、132 を使用します。 NCURSES_ASSUMED_COLORS 端末のデフォルト色が黒で白い (white-on-black) (default_colors(3X) 参照) というコンパイルされた仮定を上書きします。利用者は、2 つの要 素のリストを示すことによって、この環境変数でフォアグランドとバック グラウンドの色の値を設定することができます: フォアグランド、バック グラウンド。例えば、色に関して何も仮定しないように ncurses に伝え るためには、これを "-1,-1" に設定します。黒で緑 (green-on-black) にするためには、"2,0" に設定します。0 から terminfo max_colors 値 までのあらゆる正の値が許されます。 NCURSES_GPM_TERMS これは、GPM インタフェースを使用するために設定された ncurses だけ に適用されます。 存在しているなら、環境変数は、TERM 環境変数がマッチする 1 つ以上の 端末名のリストです。空の値にそれを設定すると、GPM インタフェースを 無効にします。xterm などの組み込みサポートに使用します。 環境変数がなく、TERM が "linux" を含んでいるなら、ncurses は、GPM をオープンすることを試みます。 NCURSES_NO_HARD_TABS ncurses は、カーソルの動作の最適化の一部としてタブを使用します。あ る場合には、利用者の端末ドライバは、適切にこれらを扱わないかもしれ ません。この環境変数の機能を無効にするように設定します。また、利用 者は、問題を避けるために stty 設定を調整することができます。 NCURSES_NO_MAGIC_COOKIES いくつかの端末は、適切にハイライトと他のビデオ属性の表示を行うため に特別な取り扱いを必要とする魔法のクッキ (magic-cookie) 機能を使用 します。利用者は、この環境変数を設定することによって、これらの端末 のためのハイライトを完全に抑制することができます。 NCURSES_NO_PADDING terminfo データベースのほとんどの端末の記述は、実際の "ハードウェ ア" 端末のために書かれています。多くの人々は、ウィンドウ環境で実行 される端末エミュレータを使用し、curses ベースのアプリケーションを 使用します。端末のエミュレータは、ハードウェア端末の重要な形状をす べて複写することができますが、それらは、同じ制限を持っていません。 使用者のアプリケーションの観点からハードウェア端末の主要な制限は、 データフローの管理、すなわちタイミングです。ハードウェア端末が (フ ロー制御を行う) 端末のコンセントレータへのインタフェースで接続され ないなら、それ (または、使用者のアプリケーション) は、オーバランを 防止してデータフローを管理しなければなりません。最も安価な解決策 (ハードウェアコストではなく) は、使用者のプログラムのために端末 が、ディスプレイをクリアするように、ゆっくり行う操作の後に一時停止 することによって、これを行うことです。 結果として、多くの端末の記述 (vt100 を含んで) は、遅延時間を埋め込 みます。これらの記述を使用したいかもしれませんが、実行効率のペナル ティ (不利益) を払いたくありません。 NCURSES_NO_PADDING 環境変数を強制的な詰め物を行う (padding) ほか は、すべて無効にするように設定します。強制的な詰め物 (padding) は、flash のような特別の制御シーケンスの一部として使用されます。 NCURSES_NO_SETBUF この設定は、時代遅れです。変更の前に • 5.9 パッチ 20120825 で開始されました、そして • 5.9 パッチ 20130126 を通して継続されました ncurses は、端末の初期化の間にバッファリングされた出力を有効にしま した。これは、性能の理由のために (SVr4 curses でのように) 行われま した。ncurses と特定のアプリケーションの両方のテストの目的のため に、この機能は、オプションになりました。NCURSES_NO_SETBUF 変数の設 定は、オリジナル (通常、行のバッファリング) モードで出力を残して、 出力のバッファリングを無効にしました。 現在の実装では、ncurses は、それ自体のバッファリングを実行し、この 回避方法を要求しません。それは、標準出力をバッファリングを修正しま せん。 変更の理由は、割り込みと他のシグナルのための振る舞いをより強固にす ることでした。1 つの難点は、特定の従来的でないプログラムが ncurses 呼び出しがある、通常の stdio 呼び出しと (通常) 作業を混合するであ ろうということです。これは、ncurses がバッファリングされた標準出力 を使用せずに、(同じファイル記述子へ) それ自体の出力を使用している ので、もはや可能ではありません。特殊な場合として、putp のような低 レベルの呼び出しは、まだ標準出力を使用します。しかし、高レベルの curses 呼び出しは、行いません。 NCURSES_NO_UTF8_ACS 初期化の間に、ncurses ライブラリは、terminfo に記述された VT100 の 行描画 (と、対応する代わりの文字を設定するケーパビリティ) が不足し ていることが知られている、特別な場合をチェックします。特に、UTF-8 ロケールで実行しているき、Linux コンソールエミュレータと GNU 画面 プログラムは、これらを無視します。ncurses は、これらのために TERM 環境変数をチェックします。他の特別な場合のために、利用者は、この環 境変数を設定するべきです。これを行うことは、VT100 の行描画グリフ (glyph) に対応する Unicode 値を使用するように ncurses に伝えます。 それは、前述の特別な場合のために動作し、端末エミュレータのように動 作します。 この変数を設定するとき、利用者は、0 でない値に設定するべきです。そ れを、0 (または、非数値) に設定すると、"Linux" と "画面" のための 特別なチェックは、無効となります。 環境変数の代わりとして、ncurses は、拡張 terminfo ケーパビリティ U8 をチェックします。これは、tic -x を使用してコンパイルすることが できる数値のケーパビリティです。例えば、 # linux コンソール, 動作を提供するためにパッチされているなら # 対応するフォントで, VT100 シフトイン/シフトアウト. linux-vt100|linux console with VT100 line-graphics, U8#0, use=linux, # 偽に設定された vt100Graphics リソースがある uxterm xterm-utf8|xterm relying on UTF-8 line-graphics, U8#1, use=xterm, 名前 "U8" は、ncurses の termcap インタフェースを使用するアプリ ケーションによって、それが使用されることを許可する 2 文字に選ばれ ます。 NCURSES_TRACE 初期化の間に、ncurses デバッグライブラリは、NCURSES_TRACE 環境変数 をチェックします。それが数値として定義されるなら、ncurses は、引数 としてその値を使用して、trace 関数を呼び出します。 curses.h で定義される引数の値は、いくつかのタイプの情報を提供しま す。トレースが有効にされて実行しているとき、利用者のアプリケーショ ンは、ファイル trace をカレントディレクトリに書き込みます。 TERM 利用者の端末タイプを示します。各端末タイプは、区別されますが、多く は、類似しています。 TERMCAP ncurses ライブラリが termcap サポートで設定されているなら、ncurses は、terminfo データベースにおいて利用可能でないなら、termcap の形 式の端末記述をチェックします。 TERMCAP 環境変数は、(改行を取り除かれた) 端末記述、または TERM 環 境変数によって示される情報がどこに存在するか伝えるファイル名のいず れかを含んでいます。いずれにしても、その設定は、この情報のための通 常の場所、例えば、/etc/termcap を無視するように ncurses に指示しま す。 TERMINFO ncurses が利用者の端末記述を検索するディレクトリを無効にします。こ れは、最も単純ですが、ディレクトリのリストを変更するただ一つの方法 ではありません。ディレクトリの完全なリストは、次の順序です: • ncurses が書き込んだ最後のディレクトリがあるなら、最初に検索さ れます • TERMINFO 環境変数によって指定されたディレクトリ • $HOME/.terminfo • TERMINFO_DIRS 環境変数にリストされたディレクトリ • 名前が設定され、ncurses ライブラリにコンパイルされた 1 つ以上 のディレクトリ、すなわち、 • @TERMINFO_DIRS@ (TERMINFO_DIRS 変数に対応する) • /usr/share/misc/terminfo (TERMINFO 変数に対応する) TERMINFO_DIRS 端末記述を検索するためのディレクトリのリストを指定します。リスト は、Unix では、コロン (すなわち ":")、OS/2 EMX では、セミコロンで 区切られます。 端末の記述のすべては、terminfo 形式です。通常、これらは、端末名の 最初の文字によって指定されたサブディレクトリを使用して、その場所に ディレクトリツリーで格納されます。 ncurses がハッシュされたデータベースで構築されるなら、このリストの 各エントリは、対応するデータベースファイルのパスも指定できます。 ncurses が termcap ファイルを直接読み込むためのサポートで構築され るなら、このリストのエントリは、termcap ファイルのパスとなります。 TERMPATH TERMCAP がファイル名を保持しないなら、ncurses は、TERMPATH 環境変 数をチェックします。これは、Unix では、空白またはコロン (すなわち ":")、OS/2 EMX では、セミコロンで区切られたファイル名のリストで す。 TERMPATH 環境変数が設定されていないなら、ncurses は、ファイル /etc/termcap、/usr/share/misc/termcap と $HOME/.termcap の順序で調 べます。 ライブラリは、現在のユーザがスーパユーザ (root) であるとき、またはアプ リケーションが setuid または setgid のパーミッションを使用するなら、次 の変数を無視するように設定されます: $HOME と同様に、$TERMINFO、$TERMINFO_DIRS、$TERMPATH。 代わりの設定 ncurses を構築するとき、使用される設定スクリプトオプションによって、い くつかの異なった設定が可能です。ncurses を使用するアプリケーションの開 発者にとって、効果が目に見えるいくつかの主要なオプションがあります: --disable-overwrite ncurses のための標準のインクルードは、書式に記述されています: #include <curses.h> このオプションは、ncurses がコンピュータの curses の主要な実装でな いとき、ファイル名の衝突を避けるために使用されます。ncurses が上書 きを無効にしてインストールされるなら、サブディレクトリにヘッダを置 きます、例えば、 #include <ncurses/curses.h> また、シンボリックリンクを省略することによって、利用者は、実行形式 を構築するために -lcurses を使用することができます。 --enable-widec 設定スクリプトは、ライブラリの名前を変更して、(--disable-overwrite オプションが使用されるなら) 異なったサブディレクトリにヘッダファイ ルを置きます。すべてのライブラリ名の先頭に "w" をつけます、すなわ ち、 -lncurses の代わりに、次でリンクします。 -lncursesw また、利用者は、拡張 (ワイド文字) 関数を使用するためにワイド文字ラ イブラリをコンパイルするとき、_XOPEN_SOURCE_EXTENDED を定義しなけ ればなりません。ワイド文字ライブラリのためにインストールされる curses.h ファイルは、通常のライブラリヘッダと互換性があるように設 計されています。WINDOW 構造体のサイズのみ異なり、ほとんどのアプリ ケーションは、WINDOW へのポインタを単に要求することはありません。 ヘッダが上書きを許してインストールされるなら、ワイド文字のライブラ リのヘッダは、アプリケーションが、同じセットのヘッダからいずれかの ライブラリを使用して構築できるように最後にインストールされるべきで す。 --with-shared --with-normal --with-debug --with-profile 共有と通常の (静的な) ライブラリ名は、それらの接尾辞、例えば、 libncurses.so と libncurses.a によって異なります。デバッグとプロ ファイリングのライブラリは、それぞれ基本の名前に "_g" と "_p" を追 加します、例えば、libncurses_g.a と libncurses_p.a。 --with-trace trace 関数は、通常デバッグライブラリにありますが、共有ライブラリ で、これを設定するために時々役に立ちます。Configure (設定) スクリ プトは、常にデバッグライブラリにあると仮定するのではなく、関数が存 在するかどうかチェックするべきです。 関連ファイル /usr/share/tabset 端末ケーパビリティデータベース /usr/share/misc/terminfo のための初 期化ファイルを含んでいるディレクトリ。 関連項目 terminfo(5) と詳細なルーチンの記述については、"curs_" で始まる名前の関 連するページ。 curs_variables(3X) 拡張機能 ncurses ライブラリを、オプション (-DUSE_GETCAP) でコンパイルできます、 それは、端末のセットアップコードが TERM に対応する terminfo エントリを 見つけることができないなら、古いスタイルの /etc/termcap ファイルに戻り ます。中核と起動時のサイクルでの重要なコストで、ncurses 起動時のコード で本質的に termcap コンパイラ全体を含んでいるので、この機能の使用は、勧 められません。 ncurses ライブラリは、特定の端末 (xterm を含んで) でのマウスイベントを 捕獲するための機能を含んでいます。詳細については、curs_mouse(3X) マニュ アルページを参照してください。 ncurses ライブラリは、例えば、xterm で実行するとき、ウィンドウサイズ変 更イベントに応答するための機能を含んでいます。詳細については、 resizeterm(3X) と wresize(3X) マニュアルページを参照してください。さら に、ライブラリは、SIGWINCH ハンドラで設定できます。 ncurses ライブラリは、アプリケーションの設計者が実行時に追加のキーシー ケンスを定義することができることによって、端末のファンクションキーの ケーパビリティの固定の設定を拡張します。詳細については、define_key(3X), key_defined(3X) と keyok(3X) マニュアルページを参照してください。 ncurses ライブラリは、アプリケーションがそのオリジナルの前景と背景色に 端末をリセットすることができる、ISO-6429 SGR 39 と SGR 49 制御を実装す る端末のケーパビリティを有効に使うことができます。ユーザの観点から、ア プリケーションは、色の対比に関してよりよい制御を提供して、色が独立して 設定される背景上の色のついたテキストを描画することができます。詳細につ いては、default_colors(3X) マニュアルページを参照してください。 ncurses ライブラリは、端末デバイスに付けられたプリンタにアプリケーショ ンの出力を向けるための機能を含んでいます。詳細については、 curs_print(3X) マニュアルページを参照してください。 移植性 ncurses ライブラリは、XSI Curses と基本的なレベルで整合性があることを目 的としています。EXTENDED XSI Curses 機能 (色サポートを含んで) がサポー トされています。 小数の局所的な差分 (すなわち、XSI Curses と ncurses 呼び出しの間の個別 の差) は、ライブラリマニュアルページの移植性セクションに記述されていま す。 他の実装と異なり、これは、それらが null でないことを保証するために WINDOW 構造へのポインタのようなパラメータをチェックします。この振る舞い を提供する主な理由は、プログラマのエラーを避けることです。標準インタ フェースは、いくつかの指定できるエラーのどれが検出されたかをアプリケー ションに伝えるライブラリのための方法を提供していません。この (または他 のあるもの) 拡張を当てにすることは、curses アプリケーションの移植性に悪 影響を与えます。 また、この実装は、次のいくつかの拡張を含んでいます: • ルーチン has_key は、XPG4 の一部ではありませんし、SVr4 にもありませ ん。詳細については、curs_getch(3X) マニュアルページを参照してくださ い。 • ルーチン slk_attr は、XPG4 の一部ではありませんし、SVr4 にもありま せん。詳細については、curs_slk(3X) マニュアルページを参照してくださ い。 • マウスインタフェースに関連するルーチン getmouse, mousemask, ungetmouse, mouseinterval と wenclose は、XPG4 の一部ではありません し、SVr4 にもありません。詳細については、curs_mouse(3X) マニュアル ページを参照してください。 • ルーチン mcprint は、あらゆる以前の curses 実装にありませんでした。 詳細については、curs_print(3X) マニュアルページを参照してください。 • ルーチン wresize は、XPG4 の一部ではありませんし、SVr4 にもありませ ん。詳細については、wresize(3X) マニュアルページを参照してくださ い。 • アプリケーションプログラムから WINDOW 構造体の内部の詳細を隠すこと ができます。is_scrollok などの考察については、curs_opaque(3X) を参 照してください。 • この実装は、マルチスレッドのアプリケーションのための基本的なサポー トを提供するために設定することができます。詳細については、 curs_threads(3X) を参照してください。 • また、この実装は、複数の画面を管理する能力を向上する 1 組の関数を提 供するために設定することができます。詳細については、 curs_sp_funcs(3X) を参照してください。 歴史的な curses バージョンでは、ケーパビリティ cr、ind、cub1、ff と tab に埋め込まれた遅延は、UNIX の tty ドライバ中の対応する遅延ビットを活性 化しました。この実装では、すべての埋め込み (padding) は、ヌル (NUL) バ イトを送信することによって行われます。この方法は、わずかにより高価です が、UNIX カーネルへのインタフェースを著しく狭くし、相応してパッケージの 移植性を増加させます。 注 ヘッダファイル <curses.h> は、自動的にヘッダファイル <stdio.h> と <unctrl.h> を含みます。 ncurses プログラムからの標準出力が tty でないものに出力先変更されるな ら、画面の更新は、標準エラーに向けられます。これは、AT&T System V Release 3 の curses に文書化されていない機能です。 作者 Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey。Pavel Curtis によ る pcurses に基づいています。 ncurses(3X)