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

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

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

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

可用性: Unix.

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

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

tty.cfmakeraw(mode)

   將 tty 屬性串列 *mode* 轉換成原始模式下的 tty 屬性串列，這個串列就
   像 "termios.tcgetattr()" 所回傳的一樣。

   在 3.12 版被加入.

tty.cfmakecbreak(mode)

   將 tty 屬性串列 *mode* 轉換成 cbreak 模式下的 tty 屬性串列，這個串
   列就像 "termios.tcgetattr()" 所回傳的一樣。

   這會清除 *mode* 中的 "ECHO" 和 "ICANON" 本地模式旗標，並將最小輸入
   設定為 1 位元組，且無延遲。

   在 3.12 版被加入.

   在 3.12.2 版的變更: 不再清除 "ICRNL" 標記。這符合 Linux 和 macOS 的
   "stty cbreak" 行為，也符合 "setcbreak()" 歷來的做法。

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 之前先儲存起
   來。此函式回傳這個值。

   這會清除 "ECHO" 和 "ICANON" 本地模式旗標，並將最小輸入設定為 1 位元
   組，且無延遲。

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

   在 3.12.2 版的變更: 不再清除 "ICRNL" 旗標。這恢復了 Python 3.11 及
   更早版本的行為，也符合 Linux、macOS 及 BSD 在他們的 "stty(1)" man
   頁面中描述的 cbreak 模式。

也參考:

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