robot
最新文章(10)
Mqskit 和其它相關工具
CPython 的 GC 二、三事
寫 Mecurial Extension 是件快樂的事!
Mozilla 台灣辨公室徵人啟事
關於 Apple 的兩項專利
core dump 之前的 frame
怎麼發出 beep 聲?
先承認你要找的是奴才吧!
程式碼要清的多乾淨?
FreeBSD 的 Thread-Local Storage 實作
首頁
新編
最新留言
Entries RSS
重要關鍵字(10)
coding (122)
Python (93)
FreeBSD (71)
WEB (61)
URL (48)
hardware (46)
javascript (36)
Linux (34)
blog (30)
C++ (16)
所有關鍵字
新增 URL
解決 ctrl+s 使 terminal output STOP
by thinker
2 Columns
關鍵字:
FreeBSD
Linux
一般可能不會注意到 ctrl+s 會使 terminal 送出 STOP 字元,使系統端暫停輸出,直到 terminal 送出 START 字元 (ctrl+q)。這就是我們在設定 UART 時,常會看到的 xon/xoff 的流量控制。這是透過特殊的字元,以控制 terminal 和 system 之間的資料傳送,以免一方傳送太快,而接收方來不及消化。因此,接收方在發覺傳送方傳送太多資料而來不及消化時,可傳送 STOP 字元,以暫停對方的輸出。並在之後,以傳送 START 字元恢復傳送。 一般的 terminal 會設定 ctrl+s 為 STOP 字元,而 ctrl+q 為 START 字元。預設使的 process 進入 stop 狀態(SIGTSTP),也就是暫停。許多程式,尤其是 editor 會使用 ctrl+s 的按鍵組合,這通常不會造成問題。但,有時在 screen 裡面時,因為特別原因, ctrl+s 會使的 screen 進入 stop 狀態,使程式無法接收到 ctrl+s 的 key code。在遇到這種問題時,可以透過 stty 設定該 terminal。 terminal 的名稱通常為 /dev/ttyXX,可以透過 ps 查詢。這時,執行下面指令 {{{ stty -f /dev/ttyXX -ixon }}} 使系統不處理 STOP 字元,如此 ctrl+s 就不會為 terminal device driver 所攔截。使用 ctrl+s 的軟體也就能順利執行。
最後更新時間: 2008-12-24 01:24:43 CST |
引用
查詢:
COMMENTS: