Die Programmiersprache Ruby

Blog| Forum| Wiki  

Aufgabe: Einlesen eines einzelnen Zeichens ohne dass die Eingabe angezeigt wird

Lösung:

1
2
3
4
5
6
7
8
9
10
11
12
#!/usr/bin/env ruby
require 'termios'
begin
  term=Termios::getattr($stdin)
  term.c_lflag &= (~Termios::ECHO & ~Termios::ICANON)
  Termios::setattr($stdin,Termios::TCSANOW,term) 
  p STDIN.getc # <<<<<<
ensure
  term=Termios::getattr($stdin)
  term.c_lflag |= (Termios::ECHO | Termios::ICANON)
  Termios::setattr($stdin,Termios::TCSANOW,term)
end