golangにテキストインターフェイスを作成しています。印刷中に入力すると、表示されているテキストを妨害します。キーボードの出力をエコー停止し、「sttyのエコー」は、それを再び有効に私は「-echoにsttyを」知っているが、私は以下のように関数を記述する場合:golangのターミナルでのキーボード印刷を無効にする方法
func disableKeyboard() {
c := exec.Command("stty -echo")
c.Stdout = os.Stdout
c.Run()
}
func enableKeyboard() {
c := exec.Command("stty echo")
c.Stdout = os.Stdout
c.Run()
}
これらは私のプログラムの出力に影響を与えません。これらのコマンドを送信する方法に何か問題がありますか?以下のような
何か:
disableKeyboard()
time.Sleep(time.Second)
enableKeyboard()
は動作しません。私は現在Macを使用しています。
'exec.Command'を使うと、新しいバックグラウンドプロセスにフォークアウトします。ユーザーがアプリケーションと対話するために使用しているTTYには影響しません。 – Adrian
これは私が考えていたことですが、これを回避する方法があるので、現在のプロセスでキーボードを一時的に無効にすることはできますか? – Rob
また、なぜdownvote? – Rob