1. 程式人生 > >termios結構體說明

termios結構體說明

如果終端並非使用非同步序列資料傳輸,tcsendbreak() 什麼都不做。
tcdrain()  等待直到所有寫入 fd 引用的物件的輸出都被傳輸。 tcflush()  丟棄要寫入 引用的物件,但是尚未傳輸的資料,或者收到但是尚未讀取的資料,取決於 queue_selector 的值: TCIFLUSH :重新整理收到的資料但是不讀   TCOFLUSH :重新整理寫入的資料但是不傳送   TCIOFLUSH :同時重新整理收到的資料但是不讀,並且重新整理寫入的資料但是不傳送  tcflow()  掛起 fd 引用的物件上的資料傳輸或接收,取決於 action 的值: TCOOFF :掛起輸出  TCOON :重新開始被掛起的輸出   TCIOFF :傳送一個 STOP 字元,停止終端裝置向系統傳送資料  TCION :傳送一個 START 字元,使終端裝置向系統傳輸資料  開啟一個終端裝置時的預設設定是輸入和輸出都沒有掛起。 波特率函式  被用來獲取和設定 termios 結構中,輸入和輸出波特率的值。新值不會馬上生效,直到成功呼叫了 tcsetattr() 函式。 設定速度為 B0 使得 modem "掛機"。與 B38400 相應的實際位元率可以用 setserial(8) 調整。  輸入和輸出波特率被保存於 termios 結構中。 cfmakeraw 設定終端屬性如下:  termios_p->c_iflag &= ~(IGNBRK|BRKINT|PARMRK|ISTRIP|INLCR|IGNCR|ICRNL|IXON);   termios_p->c_oflag &= ~OPOST;   termios_p->c_lflag &= ~(ECHO|ECHONL|ICANON|ISIG|IEXTEN); termios_p->c_cflag &= ~(CSIZE|PARENB);   termios_p->c_cflag |= CS8; 1.cfgetospeed() 返回 termios_p 指向的 termios 結構中儲存的輸出波特率  2.cfsetospeed() 設定 termios_p 指向的 termios 結構中儲存的輸出波特率為 speed。取值必須是以下常量之一:  B0             B50           B75           B110           B134          B150          B200         B300         B600         B1200         B1800        B2400         B4800       B9600       B19200     B38400       B57600      B115200       B230400 其中:零值 B0 用來中斷連線。如果指定了 B0,不應當再假定存在連線。通常,這樣將斷開連線。CBAUDEX 是一個掩碼,指示高於 POSIX.1 定義的速度的那一些 (57600 及以上)。因此,B57600 & CBAUDEX 為非零。  3.cfgetispeed() 返回 termios 結構中儲存的輸入波特率。  4.cfsetispeed() 設定 termios 結構中儲存的輸入波特率為 speed。如果輸入波特率被設為0,實際輸入波特率將等於輸出波特率。 RETURN VALUE 返回值 1.cfgetispeed() 返回 termios 結構中儲存的輸入波特率。  2.cfgetospeed() 返回 termios 結構中儲存的輸出波特率。 3.其他函式返回: 
(1)0:成功  (2) -1:失敗,並且為 errno 置值來指示錯誤。  注意 tcsetattr() 返回成功,如果任何所要求的修改可以實現的話。因此,當進行多重修改時,應當在這個函式之後再次呼叫 tcgetattr() 來檢測是否所有修改都成功實現