"tty" --- 終端機控制函式
************************

**原始碼：**Lib/tty.py

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

"tty" 模組定義了將 tty 放入 cbreak 和 raw 模式的函式。

Availability: Unix.

因為它需要 "termios" 模組，所以只能在 Unix 上執行。

"tty" 模組定義了以下函式：

tty.cfmakeraw(mode)

   Convert the tty attribute list *mode*, which is a list like the one
   returned by "termios.tcgetattr()", to that of a tty in raw mode.

   在 3.12 版被加入.

tty.cfmakecbreak(mode)

   Convert the tty attribute list *mode*, which is a list like the one
   returned by "termios.tcgetattr()", to that of a tty in cbreak mode.

   This clears the "ECHO" and "ICANON" local mode flags in *mode* as
   well as setting the minimum input to 1 byte with no delay.

   在 3.12 版被加入.

   在 3.12.2 版的變更: The "ICRNL" flag is no longer cleared. This
   matches Linux and macOS "stty cbreak" behavior and what
   "setcbreak()" historically did.

tty.setraw(fd, when=termios.TCSAFLUSH)

   將檔案描述器 *fd* 的模式更改為 raw。如果 *when* 被省略，則預設為
   "termios.TCSAFLUSH"，並傳遞給 "termios.tcsetattr()"。
   "termios.tcgetattr()" 的回傳值會在設定 *fd* 模式為 raw 之前先儲存起
   來。此函數回傳這個值。

   在 3.12 版的變更: 現在的回傳值為原本的 tty 屬性，而不是 "None"。

tty.setcbreak(fd, when=termios.TCSAFLUSH)

   將檔案描述器 *fd* 的模式更改為 cbreak。如果 *when* 被省略，則預設為
   "termios.TCSAFLUSH"，並傳遞給 "termios.tcsetattr()"。
   "termios.tcgetattr()" 的回傳值會在設定 *fd* 模式為 raw 之前先儲存起
   來。此函數回傳這個值。

   This clears the "ECHO" and "ICANON" local mode flags as well as
   setting the minimum input to 1 byte with no delay.

   在 3.12 版的變更: 現在的回傳值為原本的 tty 屬性，而不是 "None"。

   在 3.12.2 版的變更: The "ICRNL" flag is no longer cleared. This
   restores the behavior of Python 3.11 and earlier as well as
   matching what Linux, macOS, & BSDs describe in their "stty(1)" man
   pages regarding cbreak mode.

也參考:

  "termios" 模組
     低階終端機控制介面。
