termios結構體說明
阿新 • • 發佈:2019-02-12
如果終端並非使用非同步序列資料傳輸,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() 來檢測是否所有修改都成功實現
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.其他函式返回: