sub getcmd { my $cin=''; my $buf=''; my $len=0; my @cin=(); local $/=undef; while ($RUN) { print(STDERR ' '); $buf=''; $len=0; while ($len=sysread(STDIN,$buf,2)) { if (! defined($len)) { next if ($! =~ /^Interrupted/); fatal(0xff,"system read fault",$!); } $cin.=$buf; last if (rindex($buf,"\n",0) > -1); } chomp($cin); if ($cin) { @cin=split(/\s+/,$cin); print(STDERR "CIN: $cin\n") if $VRB; last; } else { $RUN--; unless ($RUN) { print(STDERR "EXIT: timeout no activity\n") if $VRB; print(0x11); } sleep 1 } } return(@cin); }