基本上,如果我写:
struct termios raw;
tcgetattr(STDIN_FILENO, &raw);
raw.c_lflag &= ~(ECHO);
tcsetattr(STDIN_FILENO, TCSAFLUSH, &raw);
这样就不会显示用户输入,c_lflag
允许tcsetattr()
如何按预期工作?
答案 0 :(得分:0)
您可以禁用ECHO以将输入NOT回显到输出,如下所示:
toptions.c_lflag &= ~(ECHO);
if (tcsetattr(fd, TCSANOW, &toptions) != 0)
{
cout << "ERROR: " << errno << " from tcsetattr" <<endl;
exit(1);
}
ECHO定义为:
c_lflag中的ECHO 控制输入是否立即重新作为输出回显。它独立于ICANON,尽管它们经常被打开 和一起。当passwd提示输入您的密码时,您的终端 处于规范模式,但ECHO已禁用。