curs_getstr(3X) | curs_getstr(3X) |
名称
getstr, getnstr, wgetstr, wgetnstr, mvgetstr, mvgetnstr, mvwgetstr, mvwgetnstr - curses 端末キーボードから文字列を受け取る書式
#include <curses.h>解説
関数 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 を返します。
注
getstr、 mvgetstr と mvwgetstr は、マクロであるかもしれないことに注意してください。移植性
これらの関数は XSI Curses standard, Issue 4 に記述されています。それらは単一のバイト文字だけを読み込みます。標準はどんなエラー条件も定義しません。ウィンドウポインタが NULL であるかまたは低レベルの wgetch 呼び出しが ERR を返すなら、この実装は ERR を返します。SVr3 および初期の SVr4 curses 実装はファンクションキーを拒否しませんでした。 SVr4.0 文書は、(ファンクションキー、"home"キー、"clear"キー、 などのような) "特殊キー"は詳細を示すことなしに "解釈される"と主張しました。それは嘘です。実際、それらの実装によって文字列に追加された `文字' 値は予測可能でした。しかし有用ではありません (実際、キーの KEY_ 値の低位 8 ビットにある)。
関数 getnstr、 mvgetnstr と mvwgetnstr は存在しましたが、 SVr4 で文書化されませんでした。