标签:term turn 并且 数据 anon san mod lin ret
1.规范模式
只是用户常见的模式,驱动程序输入的字符保存在缓冲区,并且仅在接收到回车键时才将这些缓冲的字符发送到程序。缓冲数据使驱动程序可以删除字符,终止输入。
2.非规范模式
缓冲和编辑功能被关闭时,称为处于非规范模式。用于删除和终止的编辑键没有意义了,数据一输入就发送给程序了。
3.raw模式
每个处理步骤都被一个独立的位控制。如ISIG位控制ctrl-c键是否用于终止一个程序。程序可以随意关闭所有这些处理步骤。当所有处理都关闭的时候,驱动程序将输入直接传递给程序。
在linux命令行中可以直接通过stty命令来改变模式
stty - icannon//非规范模式
stty - echo//不回显
stty icannon echo//切回规范模式和回显
通过函数来设置
void set_crmode() { struct termiios ttystate; tcgetattr(0,&ttrstate); ttystate.c_lflag&=~ICANON;//非规范模式,输入立即读取,不用等待回车 tttystate.c_cc[VMIN]=1;//一次读取一位 ttystate.c_lflag&=~ ECHO;//不回显 tcsetattr(0,TCSANOW,&ttystate); } struct termios tty_mode(int how) { static struct termios original_mode; if(how==0)//保存原来的属性 tcgetattr(0,&original_mode); else//还原属性 return tcsetattr(0,TCSANOW,&otiginal_mode); }
标签:term turn 并且 数据 anon san mod lin ret
原文地址:https://www.cnblogs.com/cs0915/p/13056437.html