struct termios結構體詳解
阿新 • • 發佈:2019-02-07
VINTR:(003, ETX, Ctrl-C, or also 0177, DEL, rubout) 中斷字元。發出 SIGINT 訊號。當設定 ISIG 時可被識別,不再作為輸入傳遞。
VQUIT :(034, FS, Ctrl-) 退出字元。發出 SIGQUIT 訊號。當設定 ISIG 時可被識別,不再作為輸入傳遞。
VERASE :(0177, DEL, rubout, or 010, BS, Ctrl-H, or also #) 刪除字元。刪除上一個還沒有刪掉的字元,但不刪除上一個 EOF 或行首。當設定 ICANON 時可被識別,不再作為輸入傳遞。
VKILL :(025, NAK, Ctrl-U, or Ctrl-X, or also @) 終止字元。刪除自上一個 EOF 或行首以來的輸入。當設定 ICANON 時可被識別,不再作為輸入傳遞。
VEOF :(004, EOT, Ctrl-D) 檔案尾字元。更精確地說,這個字元使得 tty 緩衝中的內容被送到等待輸入的使用者程式中,而不必等到 EOL。如果它是一行的第一個字元,那麼使用者程式的 read() 將返回 0,指示讀到了 EOF。當設定 ICANON 時可被識別,不再作為輸入傳遞。
VMIN :非 canonical 模式讀的最小字元數(MIN主要是表示能滿足read的最小字元數)。
VEOL :(0, NUL) 附加的行尾字元。當設定 ICANON 時可被識別。
VTIME :非 canonical 模式讀時的延時,以十分之一秒為單位。
VEOL2 :(not in POSIX; 0, NUL) 另一個行尾字元。當設定 ICANON 時可被識別。
VSWTCH :(not in POSIX; not supported under Linux; 0, NUL) 開關字元。(只為 shl 所用。)
VSTART :(021, DC1, Ctrl-Q) 開始字元。重新開始被 Stop 字元中止的輸出。當設定 IXON 時可被識別,不再作為輸入傳遞。
VSTOP :(023, DC3, Ctrl-S) 停止字元。停止輸出,直到鍵入 Start 字元。當設定 IXON 時可被識別,不再作為輸入傳遞。
VSUSP :(032, SUB, Ctrl-Z) 掛起字元。傳送 SIGTSTP 訊號。當設定 ISIG 時可被識別,不再作為輸入傳遞。
VDSUSP :(not in POSIX; not supported under Linux; 031, EM, Ctrl-Y) 延時掛起訊號。當用戶程式讀到這個字元時,傳送 SIGTSTP 訊號。當設定 IEXTEN 和 ISIG,並且系統支援作業管理時可被識別,不再作為輸入傳遞。
VLNEXT :(not in POSIX; 026, SYN, Ctrl-V) 字面上的下一個。引用下一個輸入字元,取消它的任何特殊含義。當設定 IEXTEN 時可被識別,不再作為輸入傳遞。
VWERASE :(not in POSIX; 027, ETB, Ctrl-W) 刪除詞。當設定 ICANON 和 IEXTEN 時可被識別,不再作為輸入傳遞。
VREPRINT :(not in POSIX; 022, DC2, Ctrl-R) 重新輸出未讀的字元。當設定 ICANON 和 IEXTEN 時可被識別,不再作為輸入傳遞。
VDISCARD :(not in POSIX; not supported under Linux; 017, SI, Ctrl-O) 開關:開始/結束丟棄未完成的輸出。當設定 IEXTEN 時可被識別,不再作為輸入傳遞。
VSTATUS :(not in POSIX; not supported under Linux; status request: 024, DC4, Ctrl-T).
這些符號下標值是互不相同的,除了 VTIME,VMIN 的值可能分別與 VEOL,VEOF 相同。 (在 non-canonical 模式下,特殊字元的含義更改為延時含義。MIN 表示應當被讀入的最小字元數。TIME 是以十分之一秒為單位的計時器。如果同時設定了它們,read 將等待直到至少讀入一個字元,一旦讀入 MIN 個字元或者從上次讀入字元開始經過了 TIME 時間就立即返回。如果只設置了 MIN,read 在讀入 MIN 個字元之前不會返回。如果只設置了 TIME,read 將在至少讀入一個字元,或者計時器超時的時候立即返回。如果都沒有設定,read 將立即返回,只給出當前準備好的字元。)
MIN與TIME組合有以下四種:
VQUIT :(034, FS, Ctrl-) 退出字元。發出 SIGQUIT 訊號。當設定 ISIG 時可被識別,不再作為輸入傳遞。
VERASE :(0177, DEL, rubout, or 010, BS, Ctrl-H, or also #) 刪除字元。刪除上一個還沒有刪掉的字元,但不刪除上一個 EOF 或行首。當設定 ICANON 時可被識別,不再作為輸入傳遞。
VKILL :(025, NAK, Ctrl-U, or Ctrl-X, or also @) 終止字元。刪除自上一個 EOF 或行首以來的輸入。當設定 ICANON 時可被識別,不再作為輸入傳遞。
VEOF :(004, EOT, Ctrl-D) 檔案尾字元。更精確地說,這個字元使得 tty 緩衝中的內容被送到等待輸入的使用者程式中,而不必等到 EOL。如果它是一行的第一個字元,那麼使用者程式的 read() 將返回 0,指示讀到了 EOF。當設定 ICANON 時可被識別,不再作為輸入傳遞。
VMIN :非 canonical 模式讀的最小字元數(MIN主要是表示能滿足read的最小字元數)。
VEOL :(0, NUL) 附加的行尾字元。當設定 ICANON 時可被識別。
VTIME :非 canonical 模式讀時的延時,以十分之一秒為單位。
VEOL2 :(not in POSIX; 0, NUL) 另一個行尾字元。當設定 ICANON 時可被識別。
VSWTCH :(not in POSIX; not supported under Linux; 0, NUL) 開關字元。(只為 shl 所用。)
VSTART :(021, DC1, Ctrl-Q) 開始字元。重新開始被 Stop 字元中止的輸出。當設定 IXON 時可被識別,不再作為輸入傳遞。
VSTOP :(023, DC3, Ctrl-S) 停止字元。停止輸出,直到鍵入 Start 字元。當設定 IXON 時可被識別,不再作為輸入傳遞。
VSUSP :(032, SUB, Ctrl-Z) 掛起字元。傳送 SIGTSTP 訊號。當設定 ISIG 時可被識別,不再作為輸入傳遞。
VDSUSP :(not in POSIX; not supported under Linux; 031, EM, Ctrl-Y) 延時掛起訊號。當用戶程式讀到這個字元時,傳送 SIGTSTP 訊號。當設定 IEXTEN 和 ISIG,並且系統支援作業管理時可被識別,不再作為輸入傳遞。
VLNEXT :(not in POSIX; 026, SYN, Ctrl-V) 字面上的下一個。引用下一個輸入字元,取消它的任何特殊含義。當設定 IEXTEN 時可被識別,不再作為輸入傳遞。
VWERASE :(not in POSIX; 027, ETB, Ctrl-W) 刪除詞。當設定 ICANON 和 IEXTEN 時可被識別,不再作為輸入傳遞。
VREPRINT :(not in POSIX; 022, DC2, Ctrl-R) 重新輸出未讀的字元。當設定 ICANON 和 IEXTEN 時可被識別,不再作為輸入傳遞。
VDISCARD :(not in POSIX; not supported under Linux; 017, SI, Ctrl-O) 開關:開始/結束丟棄未完成的輸出。當設定 IEXTEN 時可被識別,不再作為輸入傳遞。
VSTATUS :(not in POSIX; not supported under Linux; status request: 024, DC4, Ctrl-T).
這些符號下標值是互不相同的,除了 VTIME,VMIN 的值可能分別與 VEOL,VEOF 相同。 (在 non-canonical 模式下,特殊字元的含義更改為延時含義。MIN 表示應當被讀入的最小字元數。TIME 是以十分之一秒為單位的計時器。如果同時設定了它們,read 將等待直到至少讀入一個字元,一旦讀入 MIN 個字元或者從上次讀入字元開始經過了 TIME 時間就立即返回。如果只設置了 MIN,read 在讀入 MIN 個字元之前不會返回。如果只設置了 TIME,read 將在至少讀入一個字元,或者計時器超時的時候立即返回。如果都沒有設定,read 將立即返回,只給出當前準備好的字元。)
MIN與TIME組合有以下四種: