EN JA
curs_getstr(3X)
curs_getstr(3X) curs_getstr(3X)

名称

getstr, getnstr, wgetstr, wgetnstr, mvgetstr, mvgetnstr, mvwgetstr, mvwgetnstr - curses 端末キーボードから文字列を受け取る

書式

#include <curses.h>
 
int getstr(char *str);
 
int getnstr(char *str, int n);
 
int wgetstr(WINDOW *win, char *str);
 
int wgetnstr(WINDOW *win, char *str, int n);
 
int mvgetstr(int y, int x, char *str);
 
int mvwgetstr(WINDOW *win, int y, int x, char *str);
 
int mvgetnstr(int y, int x, char *str, int n);
 
int mvwgetnstr(WINDOW *, int y, int x, char *str, int n);
 

解説

関数 getstr は改行かキャリッジリターンが受け取られるまで (終端の文字は、返された文字列に含まれていません) getch の連続する呼び出しと等価です。結果の値は、文字ポインタ str によって指される領域に置かれます。

wgetnstr は多くても n 文字読み込みます。したがって、入力バッファの起こり得るオーバフローを防ぎます。 (終端の改行かキャリッジリターン以外の) より多くの文字を入力するどんな試みも、ビープ音を生じます。ファンクションキーはさらにビープ音を生じて無視されます。 getnstr 関数は stdscr デフォルトウィンドウから読み込みます。

使用者の erase と kill 文字は解釈されます。キーパッドモードがウィンドウに対してオンの場合、 KEY_LEFT および KEY_BACKSPACE は両方とも使用者の kill 文字と等価であると考えられます。

echo が現在オンの場合のみ、入力された文字がエコーされます。その場合は、バックスペースが、前の文字 (典型的には左の動作) の削除としてエコーされます。

戻り値

すべてのルーチンは、失敗すると整数 ERR を返します。成功して終了すれば、 OK (SVr4 は " ERR 以外の整数値"とだけ明記されています) を返します。

X/Open は、エラー条件を何も定義していません。

この実装では、これらの関数は、ウィンドウのポインタが null である、またはタイムアウトが何もデータも持たずに期限が切れるなら、エラーを返します。

この実装は、その上、拡張を提供します。関数が SIGWINCH で割り込まれるなら、 OK または ERR でなく、 KEY_RESIZE を返します。

getstrmvgetstrmvwgetstr は、マクロであるかもしれないことに注意してください。

移植性

これらの関数は XSI Curses standard, Issue 4 に記述されています。それらは単一のバイト文字だけを読み込みます。標準はどんなエラー条件も定義しません。ウィンドウポインタが NULL であるかまたは低レベルの wgetch 呼び出しが ERR を返すなら、この実装は ERR を返します。

SVr3 および初期の SVr4 curses 実装はファンクションキーを拒否しませんでした。 SVr4.0 文書は、(ファンクションキー、"home"キー、"clear"キー、 などのような) "特殊キー"は詳細を示すことなしに "解釈される"と主張しました。それは嘘です。実際、それらの実装によって文字列に追加された `文字' 値は予測可能でした。しかし有用ではありません (実際、キーの KEY_ 値の低位 8 ビットにある)。

関数 getnstrmvgetnstrmvwgetnstr は存在しましたが、 SVr4 で文書化されませんでした。

関連項目

curses(3X), curs_getch(3X)