2009年5月20日 星期三

用程序來獲得終端和修改終端參數:tcgetattr, termios, tcsetattr

用程序來獲得終端和修改終端參數:
tcgetattr
termios
tcsetattr

[轉貼]

【include】
termios.h
unistd.h
【funcion】
int tcgetattr(int fd, struct termios *termios_p);
int tcsetattr(int fd, int optional_actions, const struct termios *termios_p);
【return】
0 : 成功
-1 : 失敗,設置 errno

termios structure是POSIX指定的標準介面

struct termio
{
tcflag_t c_iflag; //input mode
tcflag_t c_oflag; //output mode
tcflag_t c_cflag; //control mode
tcflag_t c_lflag; //local mode
cc_t c_cc[NCCS]; //特殊控制字元
};


c_lflag參數









































ISIG當輸入INTR、QUIT、SUSP或DSUSP時,產生相應的信號
ICANON使用標準輸入模式
XCASE在ICANON和XCASE同時設置的情況下,終端只使用大寫。如果只設置了XCASE,則輸入字元將被轉換為小寫字元,除非字元使用了轉義字元(非POSIX,且Linux不支援該參數)
ECHO顯示輸入字元
ECHOE如果ICANON同時設置,ERASE將刪除輸入的字元,WERASE將刪除輸入的單詞
ECHOK如果ICANON同時設置,KILL將刪除當前行
ECHONL如果ICANON同時設置,即使ECHO沒有設置依然顯示分行符號
ECHOPRT如果ECHO和ICANON同時設置,將刪除列印出的字元(非POSIX)
TOSTOP向後臺輸出發送SIGTTOU信號



更多的看下列連結

ref:
1. 使用tcgetattr函數與tcsetattr函數控制终端機
2. Termios
3. Linux串口編程入門教程

沒有留言:

張貼留言