posix終端介面
大多數系統都支援posix終端介面,posix終端通過乙個termios結構來進行控制,該結構定義在termios.h檔案中。
termios結構
struct termios
;c_iflag成員
flag description
gnbrk 忽略輸入中的break狀態
brkint 如果設定了ignbrk,將忽略break。如果沒有設定,但是設定了brkint,那麼break將使得輸入和輸出佇列被重新整理,如果終端是乙個前台程序 組的控制終端,這個程序組中所有程序將收到sigint訊號。如果既未設定ignbrk也未設定brkint,break將視為nul同義字元,除非設定 了parmrk,這種情況下被視為序列/377/0/0
ignpar 忽略楨錯誤和奇偶校驗錯誤
parmrk 如果沒有設定ignpar,在有奇偶校驗錯誤或者楨錯誤的字元前插入/377/0。如果既沒有設定ignpar也沒有設定parmrk,將所有奇偶校驗錯誤或者楨錯誤的字元視為/0。
inpck 啟用輸入奇偶校驗檢測。
istrip 去掉第八位。
inlcr 將輸入的nl翻譯為cr。
igncr 忽略輸入中的回車。
icrnl 將輸入中的回車翻譯為新行字元(除非設定了igncr)。
iuclc (不屬於posix)將輸入中的大寫字母對映為小寫字母。
ixon 啟用輸出的xon/xoff流控制
ixany (不屬於posix。1;xsi)允許任何字元來重新開始輸出。
ixoff 啟用輸入的xon/xoff流控制
imaxbel (不屬於posix)當輸入佇列滿時響鈴。linux沒有實現該位,總是將其視為已設定。
c_oflag成員
flag description
opost 啟用具體實現自行定義的輸出。
olcuc (不屬於posix)將輸出中的小寫字母對映為大寫字母。
onlcr (xsi)將輸出中的新行符對映為回車-換行
ocrnl 將輸出中的回車對映為新行符。
onocr 不在第0列輸出回車。
onlret 不輸出回車。
ofill 傳送填充字元作為延時。
ofdel (不屬於posix)填充字元是ascii del(0177)。如果不設定填充字元則是ascii nul。
nldly 新行延時掩碼。取值為nl0和nl1。
crdly 回車延時掩碼。取值為cr0,cr1,cr2或cr3。
tabdly 水平跳格延時掩碼。取值為tab0,tab1,tab2,tab3(或xtabs)。取值為tab3,即xtabs,將擴充套件跳格為空格(每個跳格符填充8個空格)。
bsdly 回車延時掩碼。取值為bs0或bs1.(從來沒有被實現)
vtdly 豎直跳格掩碼。取值為vt0或vt1。
ffdly 進表延時掩碼。取值為ff0或者ff1。
c_cflag成員
flag description
cbaud (不屬於posix)波特率掩碼(4+1位)。
cbaudex (不屬於posix)擴充套件的波特率掩碼(1位),包含在cbaud中。
csize 字元長度掩碼。取值為cs5,cs6,cs7或cs8。
cstopb 設定兩個停止位。
cread 開啟接受者。
parenb 允許輸出產生奇偶資訊以及輸入的奇偶校驗。
parodd 輸入和輸出是奇校驗
hupcl 在最後乙個程序關閉裝置後,降低modem控制線(結束通話)。
clocal 忽略modem控制線。
loblk (不屬於posix)從非當前shell層阻塞輸出(用於sh1)。
cibaud (不屬於posix)輸入速度的掩碼。cibaud各位的值與cbaud各位相同,左移了ibshift位。
crtscts (不屬於posix)啟用rts/cts(硬體)控制流。
c_lflag成員
flag description
isig 當接收到字元intr,quit,susp或dsusp時,產生相應的訊號。
xcase (不屬於posix;linux下不支援)如果同時設定了icanon,終端只有大寫。輸入被轉換為小寫,除了以/字首的字元。輸出時,大寫字元被字首/,小寫字元被轉換成大寫。
echo 回顯輸入字元。
echoe 如果同時設定了icanon,字元erase擦除前乙個輸入字元,werase擦除前乙個詞。
echok 如果同時設定了icanon,字元kill刪除當前行。
echonl 如果同時設定了icanon,回顯字元nl,即使沒有設定echo。
echoctl (不屬於posix)如果同時設定了echo,除了tab,nl,start和stop之外的ascii控制訊號被回顯為^x,這裡x是比控制訊號大0x40的ascii碼。例如字元0x08(bs)被回顯為^h。
echoprt (不屬於posix)如果同時設定了icanon和iecho,字元在刪除的同時被列印。
echoke (不屬於posix)如果同時設定了icanon,回顯kill時將刪除一行中的每個字元,如同指定了echoe和echorpt一樣。
defecho (不屬於posix)只在乙個程序讀的時候回顯。
flusho (不屬於posix;linux不支援)輸出被重新整理。這個標誌可以通過鍵入字元discard來開啟和關閉。
noflsh 禁止產生sigint,sigquit和sigsusp訊號時重新整理輸入和輸出佇列。
tostop 向試圖寫控制終端的後台程序組傳送sigttou訊號。
pendin (不屬於posix;linux不支援)在讀入乙個字元時,輸入佇列中的所有字元被重新輸出。(bash用他來處理typeahead)。
iexten 啟用實現自定義的輸入處理。這個標誌必須與icanon同時使用,才能解釋特殊字元eol2,lnext,reprint和werase,iuclc標誌才有效。
c_cc陣列成員
flag description
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 模式讀的最小字元數。 veol (0, nul) 附加的行尾字元。當設定 icanon 時可被識別。 vtime 非 canonical 模式讀時的延時,以十分之一秒為單位。 veol2 (not in posix; 0, nul) 另乙個行尾字元。當設定 icanon 時可被識別。
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).
mac os x 串列埠終端完整手冊
作為乙個手機應用和嵌入式軟體開發者,我經常會在mac os x 通過串列埠操作開發板。商業版串列埠終端沒用過,最早用的是圖形介面zterm,但是這個讓人迷惑,經常找不到配置串列埠引數在 而且經常出錯。最後轉向用mac os x 的gnu screen 開啟終端很簡單 screen dev tty.u...
archlinux安裝串列埠終端ckermit
1.將usb轉串列埠連線到pc上。通過dmesg命令可以檢視usb轉串列埠是否被pc識別。顯示 attachec to ttyusb0即被識別。linux系統一般有usb轉串列埠驅動 pl2303 不用安裝。2.安裝ckermit。guo archlinux sudo pacman s ckermi...
通過串列埠配置OpenSolaris網路介面
這兩天一直在為安裝opensolaris而奮鬥。首先嘗試在xvm虛擬機器裡面安裝,嘗試了osol build 124,125,126。一直存在乙個問題,那就是如果改變了network physics service並重起系統後,user home所在的zfs無法mount。今天嘗試在xvm中安裝op...