2017-08-10 22 views
0

我正在編寫一個C程序,該程序需要在程序執行期間隱藏用戶鍵入的字符。例如,當運行以下循環時,控制檯顯示閃爍的光標(這很好)。但是,當用戶在鍵盤上鍵入鍵時,這些鍵將被回顯到控制檯。爲了形象化的更好:在程序執行期間從回顯輸入中停止Linux控制檯

第1步:啓動程序

[email protected]:/home/root# ./program 
_ 

第2步:用戶類型的某些字符(即使他不應該)

[email protected]:/home/root# ./program 
AdajfsaSJ_ 

字符得到呼應的安慰。我怎樣才能阻止呢?我知道這在理論上是可行的,但我無法找到如何實施它。


如果您需要一個更好的示例來實現我想要的功能,請在空串行端口上使用screen命令。例如,screen /dev/tty30。這清空控制檯並運行程序,但是,用戶不能輸入任何字符(有一個閃爍的白色光標塊,沒有鍵盤字符被回顯到控制檯)。這就是我需要的。

任何見解都會有所幫助,謝謝!

+0

使用['termios()'](http://man7.org/linux/man-pages/man3/termios.3.html)關閉'ECHO'標誌。 – Barmar

+0

感謝@Barmar,那就是我一直在尋找的東西。如果你把它寫成答案,我很樂意將其標記爲正確的。另外,你知道是否可以隱藏閃爍的光標嗎? – travisjayday

回答

1

使用termios()關閉終端的ECHO標誌。

要關閉文本光標,請使用termcap庫來控制光標的可見性。

相關問題