LINUX 使用tcgetattr函数与tcsetattr函数控制终端五
實例演練:
程序p6.2.c通過修改終端控制字符,將終端輸入結束符由“Ctrl+D”,修改成了“Ctrl+G”。首先,程序調用tcgetattr函數獲得標準輸入的termios信息,將termios結構體中的c_cc[VEOF]控制字符的修改成0x07(即Ctrl+G);然后,使用tcsetattr函數將修改后的termios參數設置到終端中。具體代碼如下所示:
| //p6.2.c 修改終端控制字符示例 #include <stdio.h> #include <termios.h> #include <unistd.h> #include <errno.h> int main(void){ //term用于存儲獲得的終端參數信息 struct termios term; int err; //獲得標準輸入的終端參數,將獲得的信息保存在term變量中 if(tcgetattr(STDIN_FILENO,&term)==-1){ perror("Cannot get standard input description"); return 1; } //修改獲得的終端信息的結束控制字符 term.c_cc[VEOF]=(cc_t)0x07; //使用tcsetattr函數將修改后的終端參數設置到標準輸入中 //err用于保存函數調用后的結果 err=tcsetattr(STDIN_FILENO,TCSAFLUSH,&term); //如果err為-1或是出現EINTR錯誤(函數執行被信號中斷), //給出相關出錯信息 if(err==-1 && err==EINTR){ perror("Failed to change EOF character"); return 1; } return 0; } |
使用gcc編譯p6.2.c程序,得到名為p6.2的可執行程序。在執行p6.2程序前,按“Ctrl+D”可以使終端結束。執行p6.2程序后,按“Ctrl+D”失去了作用,而輸入“Ctrl+G”實現了原來“Ctrl+D”的功能。
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的LINUX 使用tcgetattr函数与tcsetattr函数控制终端五的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LINUX 使用tcgetattr函数与
- 下一篇: Linux 下 Jni 实现