robot
最新文章(10)
快樂的小成就
Pythonkey 計劃
Mqskit 和其它相關工具
CPython 的 GC 二、三事
寫 Mecurial Extension 是件快樂的事!
Mozilla 台灣辨公室徵人啟事
關於 Apple 的兩項專利
core dump 之前的 frame
怎麼發出 beep 聲?
先承認你要找的是奴才吧!
首頁
新編
最新留言
Entries RSS
重要關鍵字(10)
coding (122)
Python (91)
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: