やねのすずめ /

ncurses 6.0 ライブラリ・マニュアル 非公式日本語訳

2018- 1-25 更新
ncurses とは
ncurses 6.0 ライブラリ・マニュアル 非公式日本語訳
動作確認用プログラム
原文
対象パッケージとバージョン
翻訳者
利用許諾
使用上の注意
作成動機など
参考文献
 curses 日本語マニュアル  curses の概要  curses 英文マニュアル  ncurses 関連  その他・未分類
関連項目

■ ncurses とは

ncurses はテキスト入出力(端末画面/キーボード、マウス)を扱うライブラリ(サブルーチン群)です。
一般に curses と呼ばれるライブラリの実装のひとつで、UNIX/Linux に対応しています。
このマニュアル・ページは C 言語向けに書かれていますが、ncurses は他に Ada, Lisp, PHP, Python, Ruby などにも導入されています。

ncurses - Wikipedia:

ncurses の使用例は、ここが分かりやすいと思います。
lf233, SoftwareDevelopment: Ncurses 入門

ncurses のホームページ・サイト
Announcing ncurses 6.0 - GNU Project - Free Software Foundation (FSF):

ncurses のダウンロード・ページ
http://ftp.gnu.org/gnu/ncurses/
ftp://invisible-island.net/ncurses/ … オリジナルの入手先、パッチファイルもあり。

参考文献も参照してください。

■ ncurses 6.0 ライブラリ・マニュアル 非公式日本語訳

HTML 形式です。まだ訳語の不統一などがありますが、全70ファイルを一応翻訳してあります。
関数名索引は、ncurses(3x) のルーチン名一覧を参照。

ncurses(3x) … 画面出力を操作し最適化するソフトウェア・パッケージ
ncurses(3x) 対訳版
curs_add_wch(3x) … 複合文字とその色と属性を curses のウィンドウに追加し、 カーソルを進める
curs_add_wch(3x) 対訳版
curs_add_wchstr(3x) … curses ウインドウに複合文字 (と属性) の配列を追加する
curs_add_wchstr(3x) 対訳版
curs_addch(3x) … 文字と属性を curses のウィンドウに追加し、カーソルを進める
curs_addch(3x) 対訳版
curs_addchstr(3x) … curses ウインドウに文字列 (と属性) を追加する
curs_addchstr(3x) 対訳版
curs_addstr(3x) … curses ウインドウに文字列を追加しカーソルを進める
curs_addstr(3x) 対訳版
curs_addwstr(3x) … curses ウインドウにワイド文字列を追加し、カーソルを進める
curs_addwstr(3x) 対訳版
curs_attr(3x) … curses 文字とウインドウの属性操作ルーチン
curs_attr(3x) 対訳版
curs_beep(3x) … curses ベルと画面点滅ルーチン
curs_beep(3x) 対訳版
curs_bkgd(3x) … curses ウインドウ背景操作ルーチン
curs_bkgd(3x) 対訳版
curs_bkgrnd(3x) … curses ウインドウの複合文字背景操作ルーチン
curs_bkgrnd(3x) 対訳版
curs_border(3x) … curses 文字を使った枠線・水平線・垂直線の作成
curs_border(3x) 対訳版
curs_border_set(3x) … curses 複合文字と表示属性を使った枠線・水平線・垂直線の作成
curs_border_set(3x) 対訳版
curs_clear(3x) … curses ウインドウの一部または全部を消去する
curs_clear(3x) 対訳版
curs_color(3x) … curses 色を操作するルーチン
curs_color(3x) 対訳版
curs_delch(3x) … curses ウインドウのカーソル位置にある文字を削除する
curs_delch(3x) 対訳版
curs_deleteln(3x) … curses ウインドウの行を削除する/挿入する
curs_deleteln(3x) 対訳版
curs_extend(3x) … curses の種々の拡張機能
curs_extend(3x) 対訳版
curs_get_wch(3x) … curses 端末キーボードからワイド文字を取得 (または返却) する
curs_get_wch(3x) 対訳版
curs_get_wstr(3x) … curses 端末キーボードからワイド文字の配列を取得する
curs_get_wstr(3x) 対訳版
curs_getcchar(3x) … cchar_t 値からワイド文字列と表示様式を取得する、ワイド文字列から cchar_t 値をセットする
curs_getcchar(3x) 対訳版
curs_getch(3x) … curses 端末キーボードから文字を取得する (または返却する)
curs_getch(3x) 対訳版
curs_getstr(3x) … curses 端末キーボードから文字列を受け取る
curs_getstr(3x) 対訳版
curs_getyx(3x) … curses カーソルとウインドウの座標を取得するマクロ
curs_getyx(3x) 対訳版
curs_in_wch(3x) … ウインドウから複合文字と表示属性を取り出す
curs_in_wch(3x) 対訳版
curs_in_wchstr(3x) … curses ウインドウから複合文字と表示属性の配列を取得する
curs_in_wchstr(3x) 対訳版
curs_inch(3x) … curses ウインドウから文字と属性を取得する
curs_inch(3x) 対訳版
curs_inchstr(3x) … curses ウインドウから文字列 (と属性) を取得する
curs_inchstr(3x) 対訳版
curs_initscr(3x) … curses 画面の初期化と操作
curs_initscr(3x) 対訳版
curs_inopts(3x) … curses 入力オプション
curs_inopts(3x) 対訳版
curs_ins_wch(3x) … ウインドウに複合文字と表示属性を挿入する
curs_ins_wch(3x) 対訳版
curs_ins_wstr(3x) … curses ウインドウにワイド文字列を挿入する
curs_ins_wstr(3x) 対訳版
curs_insch(3x) … curses ウインドウのカーソルの前に文字を挿入する
curs_insch(3x) 対訳版
curs_insstr(3x) … curses ウインドウのカーソルの前に文字列を挿入する
curs_insstr(3x) 対訳版
curs_instr(3x) … curses ウインドウから文字列を取得する
curs_instr(3x) 対訳版
curs_inwstr(3x) … curses ウインドウから wchar_t 型のワイド文字列を取得する
curs_inwstr(3x) 対訳版
curs_kernel(3x) … 低レベル curses ルーチン
curs_kernel(3x) 対訳版
curs_legacy(3x) … curses カーソルとウインドウの座標と属性を取得する
curs_legacy(3x) 対訳版
curs_memleaks(3x) … curses メモリリークの検査
curs_memleaks(3x) 対訳版
curs_mouse(3x) … curses によるマウス・インターフェイス
curs_mouse(3x) 対訳版
curs_move(3x) … curses ウインドウのカーソル移動
curs_move(3x) 対訳版
curs_opaque(3x) … curses ウインドウの特性値
curs_opaque(3x) 対訳版
curs_outopts(3x) … curses 出力オプション
curs_outopts(3x) 対訳版
curs_overlay(3x) … curses ウインドウの重ね合わせと重なったウインドウの操作
curs_overlay(3x) 対訳版
curs_pad(3x) … curses パッドの作成と表示
curs_pad(3x) 対訳版
curs_print(3x) … バイナリデータをプリンタに出力する
curs_print(3x) 対訳版
curs_printw(3x) … curses ウインドウへの書式つき出力
curs_printw(3x) 対訳版
curs_refresh(3x) … curses ウインドウと行の更新
curs_refresh(3x) 対訳版
curs_scanw(3x) … curses ウインドウからの書式つき入力の変換
curs_scanw(3x) 対訳版
curs_scr_dump(3x) … curses 画面をファイルから読み出す/ファイルに書き込む
curs_scr_dump(3x) 対訳版
curs_scroll(3x) … curses ウインドウのスクロール
curs_scroll(3x) 対訳版
curs_slk(3x) … curses ソフトウェア・ファンクションキー・ラベル・ルーチン
curs_slk(3x) 対訳版
curs_sp_funcs(3x) … curses スクリーン・ポインタ拡張機能
curs_sp_funcs(3x) 対訳版
curs_termattrs(3x) … curses 環境問い合わせルーチン
curs_termattrs(3x) 対訳版
curs_termcap(3x) … terminfo 機能データベースへの直接の curses インターフェイス
curs_termcap(3x) 対訳版
curs_terminfo(3x) … terminfo データベースへの curses インターフェイス
curs_terminfo(3x) 対訳版
curs_threads(3x) … curses マルチスレッド支援機能
curs_threads(3x) 対訳版
curs_touch(3x) … curses 画面更新制御ルーチン
curs_touch(3x) 対訳版
curs_trace(3x) … curses デバッグ用ルーチン
curs_trace(3x) 対訳版
curs_util(3x) … 種々の curses ユーティリティ・ルーチン
curs_util(3x) 対訳版
curs_window(3x) … curses ウインドウの作成と移動
curs_window(3x) 対訳版
curs_variables(3x) … curses 広域変数
curs_variables(3x) 対訳版
default_colors(3x) … 端末のデフォルト色を使う
default_colors(3x) 対訳版
define_key(3x) … キーコードを定義する
define_key(3x) 対訳版
key_defined(3x) … キーコードが定義されているか調べる
key_defined(3x) 対訳版
keybound(3x) … キーコードの定義を返す
keybound(3x) 対訳版
keyok(3x) … キーコードを有効化/無効化する
keyok(3x) 対訳版
legacy_coding(3x) … curses 8 ビット文字の表示設定
legacy_coding(3x) 対訳版
resizeterm(3x) … curses 端末サイズの変更
resizeterm(3x) 対訳版
wresize(3x) … curses ウインドウのサイズ変更
wresize(3x) 対訳版

■ 動作確認用プログラム

訳文を検討するためのものですが、マニュアルに誤り(またはライブラリにバグ)があるかもしれません。
プログラムは多少間違っているかもしれません。

wbkgd() テスト用プログラム … curs_bkgd(3x)検証用

box_set() テスト用プログラム … curs_border_set(3x)検証用
 … box_set() はマクロで、コンパイル・エラーが出る
init_color() テスト用プログラム … curs_color(3x)検証用

ncurses バージョン表示プログラム … インストール検証用

getstr() 一族テスト用プログラム … curs_getstr(3x)検証用
 … wgetnstr() 以外はマクロで、コンパイル・エラーが出る
ins_wch(), wins_wch(), mvins_wch(), mvwins_wch() テスト用プログラム … curs_ins_wch(3x)検証用
 … wins_wch() 以外はマクロで、コンパイル・エラーが出る
mvinnwstr() テスト用プログラム … curs_inwstr(3x)検証用
 … n は wchar_t の個数。複合文字をスキップして次の文字を読み込むことがある
 ● 開発者に連絡したところ、定期更新パッチ ncurses-6.0-20171028 で修正されました。
getattrs() テスト用プログラム … curs_legacy(3x)検証用
 … ウインドウ・ポインタがヌルのとき ERR でなく 0 が返る
 ● 開発者に連絡したところ、定期更新パッチ ncurses-6.0-20171118 でマニュアルが修正され、0 を返す仕様となりました。
is_linetouched(), is_wintouched() テスト用プログラム … curs_touch(3x)検証用
 … is_linetouched() はウインドウ・ポインタがヌルのとき FALSE でなく 1 を、行番号が無効なとき ERR (= -1) でなく 1 を返す
 ● 開発者に連絡したところ、定期更新パッチ ncurses-6.0-20171125 で修正され、両方とも FALSE (= 0) を返すようになりました。
pechochar(), pecho_wchar() テスト用プログラム … curs_pad(3x)検証用
 … ウインドウ・ポインタがヌルのときも ERR が返る

■原文

ubuntu 16.04LTS (xenial) 用 ncurses-doc (英語)
入手先

■対象パッケージとバージョン

ncurses 6.0.20160213

■翻訳者

やねのすずめ

■利用許諾

html ファイル内のコメントを参照してください。

■使用上の注意

非公式の日本語訳です。
理解不十分のため、記述に誤りがあるかもしれません。
疑問の点がありましたら対訳版か原文をご参照ください。
誤りがありましたら、ご指摘いただくか、
修正版を公開していただけましたら幸いです。
改良のため予告なく修正する可能性があります。

■作成動機など

MS-DOS テキストモードのC言語プログラムを移植しようと思い、
ubuntu に ncurses を入れてみることにしました。
基本的な使い方はいろいろなサイトで説明されていますが、
日本語マニュアルが見つからなかったり、
あっても間違いがある、訳が読みにくい等のため翻訳しました。

私はプログラマーとしても翻訳家としてもアマチュアで、
まだ実際に ncurses を使ったこともありませんので、
多少の誤りや読みにくい日本語が残っていると思います。
それでも叩き台があれば後の作業は格段に楽だと思いますので、
プログラムを移植する前に、マニュアルを翻訳・公開することにしました。

■参考文献

 ◆curses 日本語マニュアル

HP-UX リファレンス セクション 5
その他の機 HP-UX 11i バージョン 1 2005年 9月 Vol. 9 / 10
…線描用定数 日本語訳

FreeBSD 日本語マニュアル検索
… 比較して訳を検討

FreeBSDドキュメント jman(0) FreeBSDドキュメントJMan
… 比較して訳を検討

curs_util(3) FreeBSDドキュメントJMan
> filter ルーチンを使用する場合は、…そうすると ncurses は
> 1 行画面があると認識します。 ncurses は、画面のどの行に
> カーソルが配置されているか認識できることを想定する端末機能を
> 使用しません。

YOS OPENSONAR
… 比較して訳を検討

SunOS リファレンスマニュアル 3 : Curses ライブラリ関数
… 日本語マニュアル SunOS 5.9 最終更新日 1998年 … 比較して訳を検討

FreeBSD 7.2-RELEASE man3 コマンドマニュアル
… ncurses 日本語マニュアル … 比較して訳を検討

HP-UX リファレンス セクション 3 : ライブラリ (A ~ M) HP-UX 11i v3 Vol. 6 / 10
… 日本語リファレンスマニュアル. 2007-02 (PDF 3.9MB)
… initscr() の戻り値は stdscr

HP-UX リファレンス セクション 3 : ライブラリ (N ~ Z) HP-UX 11i v3 Vol. 7 / 10
… 日本語リファレンスマニュアル. 2007-02 (PDF 3.2MB)
… X/Open Curses 第4版(以降)
… mvderwin() の説明の仕方が異なる
… ripoffline() の注意事項
… 個々のルーチンについて、違う視点からも解説されていて理解が深まる。ただし違う実装のため ncurses も同じ動作とは限らないので注意。

SunOS リファレンスマニュアル (3) : C ライブラリ関数 curs_pad(3X)

SunOS リファレンスマニュアル (3) : C ライブラリ関数 C
… C で始まる関数
… 一部関数のみ日本語があるらしい。このページが一覧か。_w でなく w シリーズ
… SunOS 5.7 最終更新日 1998年7月30日

SunOS リファレンスマニュアル (3) : C ライブラリ関数 Intro(3)
… 関数およびライブラリの序章
… curses を含むルーチンの一覧がある。日本語マニュアルにリンクしているが、ワイド文字/wchar_t 関数以外の 1 バイト文字処理は掲載されていない

curs_window(3) — manpages-ja-dev — Debian testing — Debian Manpages
 … 比較して訳を検討
 … curs_window 以外の ncurses ページは日本語がない

Man page of curs_window (JM プロジェクト)
 … 上と同じ日本語訳. JM プロジェクトで翻訳されたページは少ない

FreeBSDドキュメント jman curs_touch
… int 型の is_linetouched(), is_wintouched()

 ◆curses の概要

IBM Knowledge Center - curses による文字の操作:
…術語の参考 (AIX 7.2)

IBM Knowledge Center - curses による文字の操作:
…curses の概要 (AIX 6.1)

Microsoft SFU 3.0 Interix 上の curses アプリケーション
… curses の概要

 ◆curses 英文マニュアル

curs_attr(3ocurses)
… SVR4 curses library マニュアル(英文)

NetBSD 6.1.5 - man page for getattrs (netbsd section 3) - Unix & Linux Commands
… chtype getattrs(WINDOW *win); … 属性を返す … NetBSD extension.

Technical Standard X/Open Curses Issue 4, Version 2
… リファレンスマニュアル. 1996-07 (PDF 667kB)
… chtype termattrs(void);

 ◆ncurses 関連

Ubuntu – パッケージのファイル一覧: ncurses-doc/xenial/all:
… xenial = Ubuntu 16.04 LTS

Bug-ncurses Info Page
… バグレポート・メーリングリスト bug-ncurses の説明ページ
  過去ログはこちら

Re: header file for cchar_t?
… マルチバイト文字に -D_XOPEN_SOURCE_EXTENDED が必要

NCURSES – Manual Pages
 … ncurses 関連マニュアル目次

 ◆その他・未分類

http://nethack4.org/latest/nethack4/libuncursed/doc/uncursed.txt
…線描用定数 キャラクタ形状

罫線素片 - Wikipedia:
…線描用定数 罫線素片

結合文字 - Wikipedia:
…非スペーシング文字の概要

環境変数によるロケールの管理 | OSDN Magazine:
… POSIX ロケールについて

Google 翻訳

英和辞典・和英辞典 - Weblio辞書:

AIX - Wikipedia
… AIX について

C言語でOpaqueポインタを使って構造体のメンバを隠蔽する - minus9d's diary
… 構造体のメンバ隠蔽

https://www.rpi.edu/dept/acm/packages/egcs/1.1.2/rs_aix41/lib/gcc-lib/rs6000-ibm-aix4.2.1.0/egcs-2.91.66/include/curses.h
…  getattrs の実装(curses.h) … #define getattrs(win) ((win)->_attrs)

キーパッド - Wikipedia
… keypad とは

8ビットクリーン ‐ 通信用語の基礎知識
… 8ビットクリーン とは

Man page of MBSTOWCS
…  mbstowcs - マルチバイト文字列をワイド文字列に変換する

Definitions
 … The Open Group Base Specifications Issue 6 (2004)
 … XSI = X/Open System Interface

シグナル (ソフトウェア) - Wikipedia

フック (プログラミング) - Wikipedia

SunOS - Wikipedia
… SunOS 5.x 1992年6月 - SVR4 Solaris を参照

Solaris - Wikipedia
> 1990年代初頭、サンはBSDベースだったSunOS 4を
> UNIX System V Release 4 (SVR4) ベースのものに置き換えた
> (SVR4はAT&Tとサンが共同で開発した)。

リスト構造をたどる walk - Google 検索
… # ツリー構造をたどるのも walk という

tgetflag(3) FreeBSDドキュメントJMan
… curs_termcap と termcap ライブラリとの互換性

16.10. curses — 文字セル表示を扱うための端末操作 — Python 3.6.1 ドキュメント
… Python の実装での概略説明

Man page of STDARG
… stdarg マニュアル日本語訳

IBM Knowledge Center
… tparm() の動作の参考

Man page of STTY
… コマンドリファレンス stty - 端末の行設定の変更や表示を行う
… erase 文字と kill 文字の設定

stty -a … erase 文字と kill 文字の現在値 (デフォルト値の調査)

■ 関連項目

ubuntu に ncurses を入れてみる(1) やねのすずめブログ/ウェブリブログ:
ubuntu に ncurses を入れてみる(2) やねのすずめブログ/ウェブリブログ:


トップページ スズメ日記 かんたんレシピ 音楽室 DOS小プログラム集 趣味の電気工作 道具箱