日本語 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.2-RELEASE-K, 8.0-RELEASE-K は、プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.2-RELEASE-K, 8.0-RELEASE-K は、全翻訳済み)
6.4-STABLE-K, 7.2-STABLE-K, 8.0-STABLE-K は現在、 作成中で日々更新されています。 最新の snapshots を元に作成しています。
ncurses(3) ncurses(3)
名称
ncurses - CRT screen handling and optimization package
書式
#include <ncurses.h>
解説
ncurses ライブラリルーチンでは、端末に依存しない方法で、そ
れなりに最適化してキャラクタ画面を更新できます。
ncurses ルーチンは、System V Release 4 UNIX の curses(3)
ライブラリをエミュレートしますが、ソース形式で自由に再分配
できます。System V Release 4 UNIX の curses との違いについ
ては、それぞれのマニュアルページのバグセクションで説明しま
す。違いは少ししかなく、ncurses が発展するにつれ、違いは少
なくなります。
このルーチンを使用しているプログラムは、-lncurses オプショ
ン、または (生成された場合は) -ldcurses や -lpcurses な ど
の デバッグライブラリの 1 つを使用してリンクする必要があり
ます。dcurses ライブラリは、curses アクションを記述した ト
レースログを生成します。pcurses ライブラリは、プロファイル
化をサポートしています。
ncurses パッケージでは、画面全体、ウィンドウ、パッド の 操
作、 ウィ ンドウとパッドへの出力、端末入力の読込み、端末、
ncurses 入力と出力のオプションの制御、環境クエリルーチン、
カ ラー操作、ソフトラベルキーの使用、terminfo 機能、低レベ
ル ncurses ルーチンへのアクセスがサポートされています。
ルーチンを初期化するには、ルーチン initscr か newterm を呼
び出してから、ウィンドウと画面を処理するその他のルーチンを
使用する必要があります。終了前には、ルーチン endwin を呼び
出してください。エコーせずに 1 回に 1 キャラクタずつ入力す
るには (インタラクティブで画面主導のほとんどのプログラムで
必要)、以下のシーケンスを使用します。
initscr(); cbreak(); noecho();
ほとんどのプログラムでは、以下のシーケンスも使用します。
nonl(); intrflush(stdscr,FALSE); keypad(std-
scr,TRUE);
ncurses プログラムを実行する前には、端末のタブストップを設
定 し、 定義されていれば初期化文字列を出力する必要がありま
す。これは、シェル環境変数 TERM をエクスポートした後でコマ
ン ド tput init を実行すれば行なえます。[詳細については、
terminfo(5) を参照してください。]
ncurses ライブラリでは、CRT 画面の全体か一部を表すキャラク
タ の 2 次元配列とみなせる、windows というデータ構造を操作
できます。デフォルトウィンドウは stdscr というもので、サイ
ズは端末画面のサイズになっています。その他のウィンドウは、
1
ncurses(3) ncurses(3)
newwin で作成できます。
ウィンドウは、WINDOW * のように宣言した変数で参照しま す。
こ のデータ構造は、マニュアルセクション 3 のページで解説し
ているルーチン (名前が「curs_」で始まるもの) で操 作 し ま
す。このうち最も基本的なルーチンは、move と addch です。こ
のルーチンの一般的なバージョンは、名前が w で始まりま す。
このバージョンではウィンドウを指定できます。w で始まらない
ルーチンは stdscr に影響します。
ルーチンを使用してウィンドウを操作した後では refresh が 呼
び 出され、ユーザの CRT 画面を stdscr のように表示する指示
が ncurses に出されます。ウィンドウのキャラクタのタイプ は
実 際には chtype (キャラクタと属性データ) なので、キャラク
タのその他の情報もそれぞれのキャラクタとともに保存で き ま
す。
パッドという特殊なウィンドウも操作できます。パッドは画面の
サイズに制限されないウィンドウで、パッドの内容は完全に表示
す る必要がありません。詳細については curs_pad(3) を参照し
てください。
キャラクタの画面への描画の他に、ビデオ属性とカラーもサポー
トされているので、下線、リバースビデオ、カラーなどのモード
で、このような表示拡張機能をサポートしている端末にキャラク
タを表示できます。ライン描画キャラクタを出力するように指定
することもできます。ncurses は、入力時にエスケープシーケン
ス を送信する矢印キーとファンクションキーを 1 つの値に変換
できます。ビデオ属性、ライン描画キャラクタ、入力値 で は、
A_REVERSE、 ACS_HLINE、KEY_LEFT のような、<ncurses.h> に定
義された名前が使用されます。
環境変数 LINES と COLUMNS を設定した場合、またはウィンドウ
環 境でプログラムを実行している場合、terminfo で読み込まれ
た情報は、環境の行とカラムの情報で上書きされます。これは、
画 面のサイズを変更できる、AT&T 630 レイヤなどで実行してい
るプログラムに影響します。
環境変数 TERMINFO を定義すると、ncurses を使用しているプロ
グラムは、ローカルの端末定義をチェックしてから標準の場所に
チェックインします。たとえば TERM を att4424 に設 定 す る
と、コンパイルされた端末定義は以下の場所で見つかります。
@TERMINFO@/a/att4424 (a は、大きなディレクトリの作成
を避けるために att4424 の最初の文字をコピーしたものです。)
し かし TERMINFO を $HOME/myterms に設定すると、ncurses は
以下の場所を最初にチェックします。
$HOME/myterms/a/att4424
チェックが失敗に終わると、次に以下をチェックします。
@TERMINFO@/a/att4424
2
ncurses(3) ncurses(3)
これは、試験用定義を開発している場合、または @TERMINFO@ の
書込み権がない場合に便利です。
整 数 変 数 LINES と COLS は、<ncurses.h> に定義されていま
す。この整数変数には、initscr が画面のサイズに従って値を入
力 し ま す。定数 TRUE と FALSE の値は、それぞれ 1 と 0 に
なっています。
ncurses ルーチンは、WINDOW * 変数 curscr も定義します。 こ
の変数は、ごみを含む画面のクリアや再描画など、特定の低レベ
ル操作で使用します。curscr は、少数のルーチンでしか使用 さ
れないでしょう。
ルーチン名と引数名
多 く の ncurses ルーチンには複数のバージョンがあります。w
で始まるルーチンにはウィンドウ引数が必要です。p で始まるル
ーチンにはパッド引数が必要です。接頭語がないルーチンは、一
般的に stdscr を使用します。
mv で始まるルーチンでは、移動先の y 座標と x 座標がなけ れ
ば、適切なアクションを実行できません。ルーチンが mv で始ま
るということは、move が呼び出されてから別のルーチンが呼 び
出されるということです。y 座標はウィンドウの行を、x 座標は
カラムを常に表します。左上は (1,1) ではなく常に (0,0) で
す。
mvw で始まるルーチンには、ウィンドウ引数と x 座標と y 座標
が必要です。ウィンドウ引数を指定してから座標を指定してくだ
さい。
どのケースでも、win は影響を受けるウィンドウで、pad は影響
を受けるパッドです。win と pad は、常に WINDOW 型のポイ ン
タです。
オ プション設定ルーチンでは、値が TRUE か FALSE になってい
る論理フラグ bf が必要です。bf の型は常に bool です。変 数
ch と attrs の 型は常に chtype です。型 WINDOW, SCREEN,
bool, chtype は、<ncurses.h> で定義されています。 TERMINAL
型 は、<term.h> で定義されています。その他すべての引数は整
数です。
ルーチン名インデックス
以下の表は、各 ncurses ルーチン、およびその解説が載って い
るマニュアルページの名前をまとめたものです。
ncurses ルーチン名マニュアルページ名
___________________________________________
addch curs_addch(3)
addchnstr curs_addchstr(3)
addchstr curs_addchstr(3)
addnstr curs_addstr(3)
addstr curs_addstr(3)
3
ncurses(3) ncurses(3)
attroff curs_attr(3)
attron curs_attr(3)
attrset curs_attr(3)
baudrate curs_termattrs(3)
beep curs_beep(3)
bkgd curs_bkgd(3)
bkgdset curs_bkgd(3)
border curs_border(3)
box curs_border(3)
can_change_color curs_color(3)
cbreak curs_inopts(3)
clear curs_clear(3)
clearok curs_outopts(3)
clrtobot curs_clear(3)
clrtoeol curs_clear(3)
color_content curs_color(3)
copywin curs_overlay(3)
curs_set curs_kernel(3)
def_prog_mode curs_kernel(3)
def_shell_mode curs_kernel(3)
del_curterm curs_terminfo(5)
delay_output curs_util(3)
delch curs_delch(3)
deleteln curs_deleteln(3)
delscreen curs_initscr(3)
delwin curs_window(3)
derwin curs_window(3)
doupdate curs_refresh(3)
dupwin curs_window(3)
echo curs_inopts(3)
echochar curs_addch(3)
endwin curs_initscr(3)
erase curs_clear(3)
erasechar curs_termattrs(3)
filter curs_util(3)
flash curs_beep(3)
flushinp curs_util(3)
getbegyx curs_getyx(3)
getch curs_getch(3)
getmaxyx curs_getyx(3)
getparyx curs_getyx(3)
getstr curs_getstr(3)
getsyx curs_kernel(3)
getwin curs_util(3)
getyx curs_getyx(3)
halfdelay curs_inopts(3)
has_colors curs_color(3)
has_ic curs_termattrs(3)
has_il curs_termattrs(3)
hline curs_border(3)
idcok curs_outopts(3)
idlok curs_outopts(3)
immedok curs_outopts(3)
inch curs_inch(3)
4
ncurses(3) ncurses(3)
inchnstr curs_inchstr(3)
inchstr curs_inchstr(3)
init_color curs_color(3)
init_pair curs_color(3)
initscr curs_initscr(3)
innstr curs_instr(3)
insch curs_insch(3)
insdelln curs_deleteln(3)
insertln curs_deleteln(3)
insnstr curs_insstr(3)
insstr curs_insstr(3)
instr curs_instr(3)
intrflush curs_inopts(3)
is_linetouched curs_touch(3)
is_wintouched curs_touch(3)
isendwin curs_initscr(3)
keyname curs_util(3)
keypad curs_inopts(3)
killchar curs_termattrs(3)
leaveok curs_outopts(3)
longname curs_termattrs(3)
meta curs_inopts(3)
move curs_move(3)
mvaddch curs_addch(3)
mvaddchnstr curs_addchstr(3)
mvaddchstr curs_addchstr(3)
mvaddnstr curs_addstr(3)
mvaddstr curs_addstr(3)
mvcur curs_terminfo(5)
mvdelch curs_delch(3)
mvderwin curs_window(3)
mvgetch curs_getch(3)
mvgetstr curs_getstr(3)
mvinch curs_inch(3)
mvinchnstr curs_inchstr(3)
mvinchstr curs_inchstr(3)
mvinnstr curs_instr(3)
mvinsch curs_insch(3)
mvinsnstr curs_insstr(3)
mvinsstr curs_insstr(3)
mvinstr curs_instr(3)
mvprintw curs_printw(3)
mvscanw curs_scanw(3)
mvwaddch curs_addch(3)
mvwaddchnstr curs_addchstr(3)
mvwaddchstr curs_addchstr(3)
mvwaddnstr curs_addstr(3)
mvwaddstr curs_addstr(3)
mvwdelch curs_delch(3)
mvwgetch curs_getch(3)
mvwgetstr curs_getstr(3)
mvwin curs_window(3)
mvwinch curs_inch(3)
mvwinchnstr curs_inchstr(3)
5
ncurses(3) ncurses(3)
mvwinchstr curs_inchstr(3)
mvwinnstr curs_instr(3)
mvwinsch curs_insch(3)
mvwinsnstr curs_insstr(3)
mvwinsstr curs_insstr(3)
mvwinstr curs_instr(3)
mvwprintw curs_printw(3)
mvwscanw curs_scanw(3)
napms curs_kernel(3)
newpad curs_pad(3)
newterm curs_initscr(3)
newwin curs_window(3)
nl curs_outopts(3)
nocbreak curs_inopts(3)
nodelay curs_inopts(3)
noecho curs_inopts(3)
nonl curs_outopts(3)
noqiflush curs_inopts(3)
noraw curs_inopts(3)
notimeout curs_inopts(3)
overlay curs_overlay(3)
overwrite curs_overlay(3)
pair_content curs_color(3)
pechochar curs_pad(3)
pnoutrefresh curs_pad(3)
prefresh curs_pad(3)
printw curs_printw(3)
putp curs_terminfo(5)
putwin curs_util(3)
qiflush curs_inopts(3)
raw curs_inopts(3)
redrawwin curs_refresh(3)
refresh curs_refresh(3)
reset_prog_mode curs_kernel(3)
reset_shell_mode curs_kernel(3)
resetty curs_kernel(3)
restartterm curs_terminfo(5)
ripoffline curs_kernel(3)
savetty curs_kernel(3)
scanw curs_scanw(3)
scr_dump curs_scr_dmp(3)
scr_init curs_scr_dmp(3)
scr_restore curs_scr_dmp(3)
scr_set curs_scr_dmp(3)
scrl curs_scroll(3)
scroll curs_scroll(3)
scrollok curs_outopts(3)
set_curterm curs_terminfo(5)
set_term curs_initscr(3)
setscrreg curs_outopts(3)
setsyx curs_kernel(3)
setterm curs_terminfo(5)
setupterm curs_terminfo(5)
slk_attroff curs_slk(3)
6
ncurses(3) ncurses(3)
slk_attron curs_slk(3)
slk_attrset curs_slk(3)
slk_clear curs_slk(3)
slk_init curs_slk(3)
slk_label curs_slk(3)
slk_noutrefresh curs_slk(3)
slk_refresh curs_slk(3)
slk_restore curs_slk(3)
slk_set curs_slk(3)
slk_touch curs_slk(3)
standend curs_attr(3)
standout curs_attr(3)
start_color curs_color(3)
subpad curs_pad(3)
subwin curs_window(3)
syncok curs_window(3)
termattrs curs_termattrs(3)
termname curs_termattrs(3)
tigetflag curs_terminfo(5)
tigetnum curs_terminfo(5)
tigetstr curs_terminfo(5)
timeout curs_inopts(3)
touchline curs_touch(3)
touchwin curs_touch(3)
tparm curs_terminfo(5)
tputs curs_terminfo(5)
typeahead curs_inopts(3)
unctrl curs_util(3)
ungetch curs_getch(3)
untouchwin curs_touch(3)
use_env curs_util(3)
vidattr curs_terminfo(5)
vidputs curs_terminfo(5)
vline curs_border(3)
vwprintw curs_printw(3)
vwscanw curs_scanw(3)
waddch curs_addch(3)
waddchnstr curs_addchstr(3)
waddchstr curs_addchstr(3)
waddnstr curs_addstr(3)
waddstr curs_addstr(3)
wattroff curs_attr(3)
wattron curs_attr(3)
wattrset curs_attr(3)
wbkgd curs_bkgd(3)
wbkgdset curs_bkgd(3)
wborder curs_border(3)
wclear curs_clear(3)
wclrtobot curs_clear(3)
wclrtoeol curs_clear(3)
wcursyncup curs_window(3)
wdelch curs_delch(3)
wdeleteln curs_deleteln(3)
wechochar curs_addch(3)
7
ncurses(3) ncurses(3)
werase curs_clear(3)
wgetch curs_getch(3)
wgetnstr curs_getstr(3)
wgetstr curs_getstr(3)
whline curs_border(3)
winch curs_inch(3)
winchnstr curs_inchstr(3)
winchstr curs_inchstr(3)
winnstr curs_instr(3)
winsch curs_insch(3)
winsdelln curs_deleteln(3)
winsertln curs_deleteln(3)
winsnstr curs_insstr(3)
winsstr curs_insstr(3)
winstr curs_instr(3)
wmove curs_move(3)
wnoutrefresh curs_refresh(3)
wprintw curs_printw(3)
wredrawln curs_refresh(3)
wrefresh curs_refresh(3)
wscanw curs_scanw(3)
wscrl curs_scroll(3)
wsetscrreg curs_outopts(3)
wstandend curs_attr(3)
wstandout curs_attr(3)
wsyncdown curs_window(3)
wsyncup curs_window(3)
wtimeout curs_inopts(3)
wtouchln curs_touch(3)
wvline curs_border(3)
戻り値
ル ー チンの解説で特記されていなければ、整数を戻すルーチン
は、エラーが発生した場合は ERR を戻し、問題がない 場 合 は
ERR 以外の整数値を戻します。
setscrreg, wsetscrreg, getyx, getbegyx, getmaxyx 以外のす
べてのマクロは、w バージョンの値を戻 し ま す。 setscrreg,
wsetscrreg, getyx, getbegyx, getmaxyx の戻り値は定義されて
いません。(すなわち、割り当てステートメントの右側では使 用
しないでください。)
ポインタを戻すルーチンは、エラーが発生すると NULL を戻しま
す。
関連項目
ルーチンの詳細については、 terminfo(5)、 お よ び 名 前 が
「curs_」で始まるセクション 3 のページを参照してください。
注
ヘッダファイル <ncurses.h> を取り込むと、ヘッダ ファ イ ル
<stdio.h> と <unctrl.h> が自動的に取り込まれます。
8