LINUX.ORG.RU

История изменений

Исправление vel, (текущая версия) :

пример кода из man perlfunc /crypt использует вызов system «stty -echo»

Рализация termios это вызов ioctl(). Если вызов stty не нравится то, можно их выполнить самостоятельно.

use strict;

sub echo_ctl {
  my $m = shift;

  my $ts;
  my $e = ioctl(*STDIN,0x5401,$ts);
  my @a = unpack("L4C9", $ts);
  $a[3] &= ~0x8;
  $a[3] |=  0x8 if $m;
  $ts = pack("L4C9",@a);
  $e = ioctl(*STDIN,0x5402,$ts);
}

print "read A1\n";
my $a1 = <STDIN>;
echo_ctl(0);
print "read A2\n";
my $a2 = <STDIN>;
echo_ctl(1);

Исходная версия vel, :

пример кода из man perlfunc /crypt использует вызов system «stty -echo»

Рализация termios это вызов ioctl(). Если вызов stty не нравится, то, можно их выполнить самостоятельно.

use strict;

sub echo_ctl {
  my $m = shift;

  my $ts;
  my $e = ioctl(*STDIN,0x5401,$ts);
  my @a = unpack("L4C9", $ts);
  $a[3] &= ~0x8;
  $a[3] |=  0x8 if $m;
  $ts = pack("L4C9",@a);
  $e = ioctl(*STDIN,0x5402,$ts);
}

print "read A1\n";
my $a1 = <STDIN>;
echo_ctl(0);
print "read A2\n";
my $a2 = <STDIN>;
echo_ctl(1);