在程序执行期间阻止Linux控制台回显输入

时间:2017-08-10 01:13:59

标签: c linux input console

我正在编写一个C程序,它需要在程序执行期间隐藏用户在屏幕上键入的字符。例如,运行以下循环时

while (1)
{ 
    //do some work
}

控制台显示闪烁的光标(表示良好)。但是,当用户在键盘上键入键时,这些键将被回显到控制台。更好地可视化:

第1步:启动程序

root@debian:/home/root# ./program
_

第2步:用户输入一些字符(即使他不应该)

root@debian:/home/root# ./program
AdajfsaSJ_

字符在控制台上回显。我怎么能阻止这个?我知道它在理论上是可行的,但我无法找到如何实现它。


如果您需要更好的示例来实现我想要实现的目标,请在空串行端口上使用screen命令。例如screen /dev/tty30。这会清空控制台并运行程序,但是,用户无法输入任何字符(这里有一个闪烁的白色光标块,并且没有键盘字符回显到控制台)。这就是我的需要。

任何见解都会有所帮助,谢谢!

1 个答案:

答案 0 :(得分:1)

使用termios()关闭终端的ECHO标志。

要关闭文本光标,请使用termcap库来控制光标可见性。