Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > асинхронное чтение с клавиатуры


Автор: tolkien 1.7.2008, 11:16
Нужна помощь. Код который я использовал для асинхронного чтения с сокетов, не работает  для асинхронного чтения с клавиатуры. Как сделать чтобы он заработал? У меня получилось только запуском параллельного потока для чтения ввода с клавиатуры. Но хотелось бы решить эту задачу с помощью select. ОС Win2k ActivePerl 5.8
Код

while(1)
{
  my $rin = '';
  my $rout = 0;
  vec($rin, fileno(STDIN), 1) = 1;
  my $nfound = select($rout=$rin, undef, undef, .8);
  
  if ($nfound > 0)
  {
    my $s = '';
    sysread(STDIN, $s, 1024);  
    print 's = ', $s;
  }
}
 




Автор: shamber 1.7.2008, 11:37
C помощью select под виндой никак. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)