curs_inopts 3x

curs_inopts(3x)                                         curs_inopts(3x)




NAME 名前

       cbreak, nocbreak, echo, noecho, halfdelay, intrflush,
       keypad, meta, nodelay, notimeout, raw, noraw, noqiflush,
       qiflush, timeout, wtimeout, typeahead - curses input
       options
        - curses 入力オプション


SYNOPSIS 書式

       #include <curses.h>

       int cbreak(void);
       int nocbreak(void);
       int echo(void);
       int noecho(void);
       int halfdelay(int tenths);
       int intrflush(WINDOW *win, bool bf);
       int keypad(WINDOW *win, bool bf);
       int meta(WINDOW *win, bool bf);
       int nodelay(WINDOW *win, bool bf);
       int raw(void);
       int noraw(void);
       void noqiflush(void);
       void qiflush(void);
       int notimeout(WINDOW *win, bool bf);
       void timeout(int delay);
       void wtimeout(WINDOW *win, int delay);
       int typeahead(int fd);


DESCRIPTION 説明

       The ncurses library provides several functions  which  let
       an  application  change the way input from the terminal is
       handled.  Some are global, applying to all windows.   Oth-
       ers apply only to a specific window.  Window-specific set-
       tings are not automatically applied to new or derived win-
       dows.   An application must apply these to each window, if
       the same behavior is needed.
        アプリケーションが端末からの入力を扱う方法を変更するような
       いくつかの関数を ncurses ライブラリは用意しています。
        いくつかは包括的で、すべてのウインドウに適用され、
       その他は特定のウインドウにのみ適用されます。
        特定のウインドウ用の設定は、新しいウインドウや
       派生したウインドウには自動的に適用されません。
        もし同じ挙動が必要ならば、各ウインドウにこれらを
       適用しなければなりません。


cbreak/nocbreak

       Normally, the tty driver buffers typed characters until  a
       newline  or  carriage return is typed.  The cbreak routine
       disables line buffering and erase/kill  character-process-
       ing  (interrupt  and flow control characters are unaffect-
       ed), making  characters  typed  by  the  user  immediately
       available  to  the  program.  The nocbreak routine returns
       the terminal to normal (cooked) mode.
        通常、 tty ドライバは改行か復帰が押されるまで、打たれた
       文字をバッファリングします。
        cbreak ルーチンは行のバッファリングと erase/kill 文字処理 
       (割り込みとフロー制御文字は影響されません) を無効にし、
       打った文字をプログラムがすぐに使えるようにします。
        nocbreak ルーチンは端末を通常 (=cooked) モードに戻します。

       Initially the terminal may or may not be in  cbreak  mode,
       as the mode is inherited; therefore, a program should call
       cbreak or nocbreak explicitly.  Most interactive  programs
       using  curses set the cbreak mode.  Note that cbreak over-
       rides raw.  [See curs_getch(3x) for a  discussion  of  how
       these routines interact with echo and noecho.]
        モードが継承されるため、端末は、初め cbreak モードかも
       しれませんし、そうでないかもしれません。そのため、明示的に 
       cbreak または nocbreak を呼び出す必要があります。
        curses を使う最も対話的なプログラムは cbreak モードに
       設定します。
        cbreakraw を無効にすることに注意してください。
        [これらのルーチンが echonoecho とどう相互作用するかに
       ついては curs_getch(3x) を参照してください。]


echo/noecho

       The  echo  and  noecho routines control whether characters
       typed by the user are echoed by getch as they  are  typed.
       Echoing by the tty driver is always disabled, but initial-
       ly getch is in echo mode, so characters typed are  echoed.
       Authors  of  most  interactive programs prefer to do their
       own echoing in a controlled area of the screen, or not  to
       echo  at  all,  so they disable echoing by calling noecho.
       [See curs_getch(3x) for a discussion of how these routines
       interact with cbreak and nocbreak.]
        echonoecho ルーチンは、打った文字をそのまま getch で
       エコーするかどうかを制御します。
        tty ドライバによるエコーは常に無効ですが、初めは getch が
       エコーモードなので、打った文字はエコーされます。
        最も対話的なプログラムは、画面上の制限された領域に自分で
       エコーするか、全くエコーしないため、 noecho を呼び出して
       エコーを無効にします。
        [これらのルーチンが cbreaknocbreak とどう
       相互作用するかについては curs_getch(3x) を参照してください。]


halfdelay

       The  halfdelay  routine is used for half-delay mode, which
       is similar to cbreak mode in that characters typed by  the
       user  are  immediately available to the program.  However,
       after blocking for tenths tenths of seconds,  ERR  is  re-
       turned  if  nothing  has  been typed.  The value of tenths
       must be a number between 1 and 255.  Use nocbreak to leave
       half-delay mode.
        halfdelay ルーチンは半遅延モードに使います。これは 
       cbreak モードと同じように、打った文字をすぐにプログラムが
       使えるようにします。
        しかし 0.1 * tenths 秒間の入力待ちをした後、
       何も打たれなかった場合、 ERR が返ります。
        tenths の値は 1 から 255 の間でなければなりません。
        半遅延モードから抜けるには nocbreak を使ってください。


intrflush

       If  the  intrflush  option is enabled (bf is TRUE), and an
       interrupt key  is  pressed  on  the  keyboard  (interrupt,
       break,  quit),  all output in the tty driver queue will be
       flushed, giving the effect of faster response to  the  in-
       terrupt, but causing curses to have the wrong idea of what
       is on the screen.  Disabling the option (bf is FALSE) pre-
       vents  the flush.  The default for the option is inherited
       from the tty driver settings.  The window argument is  ig-
       nored.
        intrflush オプションが有効 ( bfTRUE ) でキーボードの
       割り込みキー ( interrupt, break, quit ) が押されたとき、 
       tty ドライバの待ち行列 (キュー) 内のすべての出力は一掃され、
       割り込みに対する応答が速くなる効果をもたらしますが、
       画面上に何があるかという、 curses の持つ情報が狂います。
        このオプションを無効 ( bfFALSE ) にすると、一掃を
       防ぎます。
        このオプションのデフォルト値は tty ドライバの設定から
       引き継ぎます。
        ウインドウ引数は無視されます。


keypad

       The  keypad option enables the keypad of the user's termi-
       nal.  If enabled (bf is TRUE), the user can press a  func-
       tion  key (such as an arrow key) and wgetch returns a sin-
       gle value representing the function key, as  in  KEY_LEFT.
       If  disabled (bf is FALSE), curses does not treat function
       keys specially and the program has to interpret the escape
       sequences  itself.   If  the keypad in the terminal can be
       turned on (made to transmit) and off (made to work  local-
       ly),  turning on this option causes the terminal keypad to
       be turned on when wgetch is called.  The default value for
       keypad is FALSE.
        keypad オプションは端末のキーパッドを有効にします。
        有効な場合 ( bfTRUE ) 、ファンクションキー類 
       (矢印キーなど) を押すと、 wgetch はファンクションキー類を
       表す KEY_LEFT のような単一の値を返します。
        無効な場合 ( bfFALSE ) 、 curses は
       ファンクションキー類を特別扱いせず、プログラムは
       エスケープ・シーケンスそのものを解釈しなければなりません。
        端末のキーパッドをオン (送信可能) にしたり
       オフ (ローカル用) にしたりできるならば、
       このオプションをオンにすると、 wgetch が呼び出された時に
       端末のキーパッドがオンになります。
        keypad のデフォルト値は FALSE です。


meta

       Initially, whether the terminal returns 7 or 8 significant
       bits on input depends on the control mode of the tty driv-
       er  [see  termio(7)].  To force 8 bits to be returned, in-
       voke meta(win, TRUE); this is equivalent, under POSIX,  to
       setting  the CS8 flag on the terminal.  To force 7 bits to
       be returned, invoke meta(win, FALSE); this is  equivalent,
       under POSIX, to setting the CS7 flag on the terminal.  The
       window argument, win, is always ignored.  If the  terminfo
       capabilities  smm (meta_on) and rmm (meta_off) are defined
       for the  terminal,  smm  is  sent  to  the  terminal  when
       meta(win,  TRUE)  is called and rmm is sent when meta(win,
       FALSE) is called.
        初期状態では、 tty ドライバの制御モードによって端末が返す
       有効ビット数が 7 ビットになるか 8 ビットになるかが決まります
       [ termio(7) を参照]。
        強制的に 8 ビットを返すようにするには、 meta(win, TRUE); を
       実行します。これは POSIX では端末の CS8 フラグを
       セットすることと同等です。
        強制的に 7 ビットを返すようにするには、 meta(win, FALSE); を
       実行します。これは POSIX では端末の CS7 フラグを
       セットすることと同等です。
        ウインドウ引数 win は常に無視されます。
        terminfo の機能項目 smm (meta_on) と rmm (meta_off) が
       定義されている端末では、 meta(win, TRUE) が呼び出された時に 
       smm が、 meta(win, FALSE) が呼び出された時に rmmが
       端末に送られます。


nodelay

       The nodelay option causes getch to be a non-blocking call.
       If  no input is ready, getch returns ERR.  If disabled (bf
       is FALSE), getch waits until a key is pressed.
        nodelay オプションは getch 呼び出しを入力待ちなしとします。
        入力の準備ができていなければ、 getchERR を返します。
        無効な場合 ( bfFALSE ) 、 getch はキーが押されるまで
        待ちます。


notimeout

       While interpreting an input escape sequence, wgetch sets a
       timer  while  waiting  for the next character.  If notime-
       out(win, TRUE) is called,  then  wgetch  does  not  set  a
       timer.  The purpose of the timeout is to differentiate be-
       tween sequences received from a  function  key  and  those
       typed by a user.
        入力されたエスケープ・シーケンスを変換する間、 wgetch は
       次の文字を待つタイマをセットします。
        notimeout(win, TRUE) が呼び出されると、 wgetch はタイマを
       セットしません。
        タイムアウトの目的は、ファンクションキーから受け取った
       シーケンスとユーザが打ったものとを区別することです。


raw/noraw

       The  raw and noraw routines place the terminal into or out
       of raw mode.  Raw mode is similar to cbreak mode, in  that
       characters typed are immediately passed through to the us-
       er program.  The differences are that in raw mode, the in-
       terrupt,  quit,  suspend,  and flow control characters are
       all passed through uninterpreted, instead of generating  a
       signal.   The  behavior  of the BREAK key depends on other
       bits in the tty driver that are not set by curses.
        rawnoraw ルーチンによって端末が raw モードに入ったり
       抜けたりします。
        raw モードは打った文字がすぐにそのままプログラムに
       渡される点で cbreak モードと同じです。
        違いは、 raw モードでは interrupt, quit, suspend, および
       フロー制御文字がシグナルを発生させる代わりに、すべて
       変換されずに渡されることです。
        BREAK キーの挙動は curses が設定しない tty ドライバの
       他のビットに依存します。


noqiflush/qiflush

       When the noqiflush routine is used, normal flush of  input
       and  output queues associated with the INTR, QUIT and SUSP
       characters will not be done [see termio(7)].  When qiflush
       is  called,  the queues will be flushed when these control
       characters are read.  You may want to call noqiflush()  in
       a  signal handler if you want output to continue as though
       the interrupt had not occurred, after the handler exits.
        noqiflush ルーチンを使うと、 INTR, QUIT, SUSP 文字に伴う
       入力キューと出力キューの通常の一掃をしません。
       [ termio(7) を参照]
        qiflush を呼び出すと、両キューはこれらの制御キーを読んだ時に
       一掃されます。
        シグナルハンドラを抜けた後、割り込みが起きなかったかのように
       出力を続けたい場合、シグナルハンドラの中で noqiflush() を
       呼び出したくなることもあるでしょう。


timeout/wtimeout

       The timeout and wtimeout routines  set  blocking  or  non-
       blocking  read  for a given window.  If delay is negative,
       blocking read is used (i.e., waits  indefinitely  for  in-
       put).   If  delay  is zero, then non-blocking read is used
       (i.e., read returns ERR if no input is waiting).  If delay
       is  positive, then read blocks for delay milliseconds, and
       returns ERR if there is still no input.  Hence, these rou-
       tines  provide the same functionality as nodelay, plus the
       additional capability of being able to block for only  de-
       lay milliseconds (where delay is positive).
        timeoutwtimeout ルーチンは、指定のウインドウが
       読み込み時に入力待ちをするかしないかを設定します。
        delay が負ならば入力待ちをし、入力があるまで待ち続けます。
        delay がゼロならば入力待ちをしません。読み込みを待っている
       入力がなければ、読み込みルーチンは ERR を返します。
        delay が正ならば delay ミリ秒待って、まだ入力がなければ、 
       ERR を返します。
        したがって、これらのルーチンは nodelay と同じ機能に加え、 
       delay ミリ秒だけ待つことができるという機能を追加しています 
       ( delay が正のとき) 。


typeahead

       The  curses  library  does "line-breakout optimization" by
       looking for  typeahead  periodically  while  updating  the
       screen.   If  input is found, and it is coming from a tty,
       the current update is postponed until refresh or  doupdate
       is  called again.  This allows faster response to commands
       typed in advance.  Normally, the input FILE pointer passed
       to  newterm,  or  stdin in the case that initscr was used,
       will be used to do this typeahead checking.  The typeahead
       routine  specifies  that  the  file descriptor fd is to be
       used to check for typeahead instead.  If fd is -1, then no
       typeahead checking is done.
        curses ライブラリは画面を更新している間、周期的に
       入力先読みをして "行の内容変更の最適化" をしています。
        入力を検出し、それが tty から来たものならば、現在の更新は
       再び refreshdoupdate が呼び出されるまで先延ばしにします。
        これにより、あらかじめ入力されたコマンドに対する応答を
       より速くできます。
        通常、 newterm に渡された入力 FILE ポインタか、 initscr が
       使われたならば stdin が、この入力先読みに使われます。
        typeahead ルーチンはこれらに代えて、入力先読みに使う
       ファイルディスクリプタ fd を指定します。
        fd が -1 ならば入力先読みをしません。


RETURN VALUE 戻り値

       All  routines that return an integer return ERR upon fail-
       ure and OK (SVr4 specifies only "an  integer  value  other
       than  ERR")  upon  successful completion, unless otherwise
       noted in the preceding routine descriptions.
        整数を返すすべてのルーチンは、上のルーチン説明で特記して
       いないかぎり、失敗した場合に整数値 ERR を、正常終了の場合に 
       OK ( SVr4 は「 ERR 以外の整数値」としか指定していません) を
       返します。

       X/Open does not define any error conditions.  In this  im-
       plementation,  functions  with a window parameter will re-
       turn an error if it is null.  Any function will  also  re-
       turn an error if the terminal was not initialized.  Also,
        X/Open はエラーの条件を何も定義していません。この実装では、
       ウインドウ引数を取る関数は、それがヌルのときにエラーを
       返します。
        端末が初期化されていなかったとき、すべての関数はやはり
       エラーを返します。
        さらにまた、

              halfdelay
                   returns  an  error if its parameter is outside
                   the range 1..255.
                   引数が 1 から 255 の範囲の外だったときに
                   エラーを返します。


PORTABILITY 移植性

       These functions are described in the XSI Curses  standard,
       Issue 4.
        これらの関数は、 XSI Curses standard, Issue 4 に記載されて
       います。

       The  ncurses  library obeys the XPG4 standard and the his-
       torical practice of the AT&T  curses  implementations,  in
       that  the  echo bit is cleared when curses initializes the
       terminal state.  BSD curses differed from  this  slightly;
       it left the echo bit on at initialization, but the BSD raw
       call turned it off as a side-effect.  For best  portabili-
       ty,  set  echo or noecho explicitly just after initializa-
       tion, even if your program remains in cooked mode.
        ncurses ライブラリは XPG4 standard と AT&T curses の
       実装における歴史的な習慣に従って、 curses が端末の状態を
       初期化するときに echo ビットをクリアします。
        BSD curses は少し異なり、初期化時には echo ビットを
       放置しますが、 BSD の raw 呼び出しは副作用としてこれをオフに
       します。
        移植性のために最善なのは、プログラムが通常モード (cooked) 
       であっても初期化の直後に echo か noecho を明示的に設定する
       ことです。

       When keypad is first enabled, ncurses loads the  key-defi-
       nitions for the current terminal description.  If the ter-
       minal description includes extended  string  capabilities,
       e.g.,  from  using the -x option of tic, then ncurses also
       defines keys for the capabilities whose names  begin  with
       "k".   The  corresponding  keycodes are generated and (de-
       pending on previous loads of  terminal  descriptions)  may
       differ  from  one execution of a program to the next.  The
       generated keycodes are recognized by the keyname  function
       (which will then return a name beginning with "k" denoting
       the terminfo capability name rather  than  "K",  used  for
       curses  key-names).  On the other hand, an application can
       use define_key to establish a specific keycode for a given
       string.   This  makes  it  possible  for an application to
       check for an extended capability's presence with tigetstr,
       and reassign the keycode to match its own needs.
        初めて keypad が有効になった時、 ncurses は現在の端末記述に
       対するキーの定義を読み込みます。
        もし端末記述が拡張文字列機能項目を含むならば、
       たとえば tic の -x オプションを使って (から) ncurses はまた、 
       "k" で始まる名前の機能項目に対応するキーを定義します。
        対応するキーコードが生成され、そして (以前の端末記述の
       読み込みに依存して) プログラムを実行するごとに異なる値と
       なるかもしれません。
        生成されたキーコードは keyname 関数で認識されます 
       (そして curses の key-names に使われている "K" でなく、 
       terminfo の機能項目名を示す "k" で始まる名前を返します) 。
        他方、アプリケーションは与えられた文字列に対して特定の
       キーコードを確立するために define_key を使うことができます。
        アプリケーションはこれにより、 tigetstr を使って
       拡張機能項目の存在を検査することと、必要に応じてキーコードを
       割り当て直すことができます。

       Low-level applications can use tigetstr to obtain the def-
       inition of any particular string capability.  Higher-level
       applications which use the curses wgetch and similar func-
       tions to return keycodes rely upon the order in which  the
       strings  are  loaded.  If more than one key definition has
       the same string value, then wgetch  can  return  only  one
       keycode.   Most curses implementations (including ncurses)
       load key definitions in the order defined by the array  of
       string capability names.  The last key to be loaded deter-
       mines the keycode which will be returned.  In ncurses, you
       may  also  have  extended  capabilities interpreted as key
       definitions.  These are loaded after the predefined  keys,
       and  if  a capability's value is the same as a previously-
       loaded key definition, the later  definition  is  the  one
       used.
        低レベルのアプリケーションは tigetstr を使って
       どのような特定の文字列機能項目の定義でも得ることができます。
        キーコードを返すために curses の wgetch や同様の関数を使う、
       より高レベルのアプリケーションは、文字列が読み込まれる順序を
       当てにすることができます。
        もし 2 つ以上のキー定義が同じ文字列値を持つならば、 
       wgetch は 1 つのキーコードのみを返します。
        ( ncurses を含む) ほとんどの curses の実装は、
       文字列機能項目名の配列によって定義された順序でキー定義を
       読み込みます。
        最後に読み込まれるキーが、返されるキーコードを決めます。
        ncurses では、キー定義として変換された拡張機能項目を
       持つこともできます。
        これらは定義済みのキーの後に読み込まれ、もし機能項目の値が
       以前に読み込まれたキー定義と同じならば、後のほうの定義が
       使われます。


NOTES 注意

       Note  that echo, noecho, halfdelay, intrflush, meta, node-
       lay, notimeout, noqiflush, qiflush, timeout, and  wtimeout
       may be macros.
        echo, noecho, halfdelay, intrflush, meta, nodelay, 
       notimeout, noqiflush, qiflush, timeout, wtimeout は
       マクロであるかもしれないことに注意してください。

       The noraw and nocbreak calls follow historical practice in
       that they attempt to restore  to  normal  (`cooked')  mode
       from  raw and cbreak modes respectively.  Mixing raw/noraw
       and cbreak/nocbreak calls  leads  to  tty  driver  control
       states  that  are hard to predict or understand; it is not
       recommended.
        norawnocbreak 呼び出しは歴史的な習慣にしたがって、
       それぞれ raw モードと cbreak モードから
       通常 ('cooked') モードへ戻ろうとします。
        raw/noraw と cbreak/nocbreak 呼び出しを混用すると、 
       tty ドライバの制御状態を予測あるいは理解することが
       困難になるので推奨しません。


SEE ALSO 関連項目

       curses(3x),   curs_getch(3x),   curs_initscr(3x),
       curs_util(3x), define_key(3x), termio(7)



                                                        curs_inopts(3x)