2.2 终端模式设置

=================


2.2.1 ECHO模式

---------------

   * 函数

     int echo() / int noecho()

   * 说明

     1. ECHO模式即回显模式,ECHO模式用来决定用户的输入是否立即回显


2.2.2 CBREAK模式

-----------------

   * 函数

     int cbreak() / int nocbreak()

   * 说明

     1. CBREAK模式也被成为立即输入模式,在此模式下,除了DELETE或者CTRL等仍然被视为特殊控制字符外,所有的输入字符都被一一立即读取出来.

     2. 默认情况下CBREAK模式是打开的

     3. 在旧版本的curses中,必须使用crmode()和nocrmode()取代cbreak()和nocbreak()


2.2.3 NEWLINE模式

------------------

   * 函数

     int nl() / int nonl()

   * 说明

     NEWLINE模式决定输入时回车是否为\r\n.输入时\r\n是否和起来作为一个回车键


2.2.4 功能键模式

-----------------

   * 函数

     int keypad(WINDOW *win,int flag)

     * 参数说明

       1. win指向需要设置功能键模式的窗口

       2. flag为TRUE/FALSE用来指定模式的开启或关闭

   * 说明

     1. 一般情况下,方向键与功能键这些特殊字符是无法被wgetch()之类的函数读取出来的.开启功能键模式之后,特殊字符会被转化为curses.h内部定义的一些特殊键.

     2. curses.h内部定义的特殊键一般以KEY_开头,列表如下

        * KEY_MIN         curses中定义的最小的键值

        * KEY_BREAK       break按键

        * KEY_DOWN        方向键下

        * KEY_UP          方向键上

        * KEY_LEFT        方向键左

        * KEY_RIGHT       方向键右

        * KEY_HOME        home键

        * KEY_BACKSPACE   退格键

        * KEY_F0          功能键F0

        * KEY_F(n)        功能键Fn

        * KEY_DL          行删除键

        * KEY_IL          行插入建

        * KEY_DC          字符删除键

        * KEY_IC          字符插入键

        * KEY_NPAGE       下一页

        * KEY_PPAGE       上一页

        * KEY_END         end键

        * KEY_MAX         curses定义的最大键值


2.2.5 RAW模式

--------------

   * 函数

     int raw() / int noraw()

   * 说明

     * 用户的输入会立即被接受,同时任何特殊字符将不再起作用,取而代之的是产生一个相应的信号

     * 如果同时设置CBREAK和RAW模式,仅有RAW模式其作用


2.2.6 延迟模式

---------------

   * 函数

     int halfdelay(int tenth)

     * 参数说明

       1. tenth指定半延时的时间间隔,单位是10ms

     int nodelay(WINDOW *win,bool bf)

     * 参数说明

       1. win指向需要设置无延迟模式窗口的指针,bf决定开启或关闭该模式

   * 说明

     * 半延迟模式与cbrak模式非常类似,所有用户输如立即被接受,但不同点在于如果一段时间内用户没有输入,则输入函数立即返回ERR

     * 使用nocbreak()函数可以取消终端的半延时模式

     * 无延迟模式主要用来控制终端的字符输入. 它使得终端输入函数由阻塞调用变成非阻塞调用