|
|

楼主 |
发表于 2005-11-30 08:35:14
|
显示全部楼层
我现在已经跟据楼上大哥的程序,完成了我所需要的功能,代码如下:可我不清楚temp.c_lflag &= ~ECHO;与temp.c_lflag &=ECHO;有什么区别?是不是用第二个设置后表示回显而第一个表示不回显,可我在下面的程序中试了试这两个语句,效果都不回显,我不清楚为什么?具体需求我是想在vxworks下做到这种效果,先在linux下实现
#include<termios.h>
#include<stdio.h>
#include<unistd.h>
static struct termios attr;
void set(){
struct termios temp;
tcgetattr(0, &attr);
memcpy(&temp, &attr, sizeof(struct termios));
temp.c_lflag &= ICANON;
temp.c_lflag &= ~ECHO;
temp.c_lflag &=ECHOE;
temp.c_lflag &=ISIG;
temp.c_cc[VTIME] = 255;
temp.c_cc[VMIN] = 1;
temp.c_cc[VERASE]='\b';
tcsetattr(0, TCSANOW, &temp);
}
void reset(){
tcsetattr(0, TCSANOW, &attr);
}
int main(){
char c;
atexit(&reset);
set();
while( (c = getchar()) != 'q')
{
putchar(c);
if(c=='\b')
{
putchar(' ');
putchar('\b');
}
}
} |
|