【发布时间】:2017-08-10 01:13:59
【问题描述】:
我正在编写一个 C 程序,该程序需要在程序执行期间从屏幕上隐藏用户键入的字符。例如,当运行以下循环时
while (1)
{
//do some work
}
控制台显示闪烁的光标(这很好)。但是,当用户在键盘上键入键时,这些键会被回显到控制台。为了更好地可视化它:
第 1 步:启动程序
root@debian:/home/root# ./program
_
第 2 步:用户输入一些字符(即使他不应该)
root@debian:/home/root# ./program
AdajfsaSJ_
字符在控制台上得到回显。我怎样才能阻止这个?我知道这在理论上是可能的,但我不知道如何实现它。
如果您需要一个更好的示例来实现我想要实现的目标,请在空串行端口上使用 screen 命令。 screen /dev/tty30 例如。这会清空控制台并运行程序,但是,用户无法输入任何字符(有一个闪烁的白色光标块,并且没有键盘字符回显到控制台)。这就是我需要的。
任何见解都会有所帮助,谢谢!
【问题讨论】:
-
使用
termios()关闭ECHO标志。 -
谢谢@Barmar,这就是我一直在寻找的。如果您将其写为答案,我很乐意将其标记为正确答案。另外,你知道是否可以隐藏闪烁的光标吗?