Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Timur V. Irmatov                     2:5020/400     06 Sep 2001  13:37:04
 To : All
 Subject : child process
 -------------------------------------------------------------------------------- 
 
 
 Здравствуйте, All !
 
 Вот такая трабла... Перловый скрипт порождает потомка, читает построчно его
 вывод и выводит на стандартный вывод полученную строку.. Дочерний процесс
 пишет по строке каждую секунду.. При запуске выяснятся, что пока дочерний
 процесс не завершится и не закроет канал, основной процесс не читает ни
 строчки...
 Вот сам скрипт:
 
 #!/usr/bin/perl -w
 
 $pid = open(IN, "-|");
 die "can't fork: $!\n" if !defined($pid);
 if ($pid) {
     while (<IN>) {
         print "from child: $_";
     }
 } else {
     for ($i = 0; $i < 10; ++$i) {
         print "$i\n";
         sleep 1;
     }
 }
 
 Запускаю скрипт, 10 секунд молчания и потом вываливаются десять строк..
 Можно это как-то победить, чтобы основной процесс получал строку сразу после
 того, как дочерний ее запишет?
 
 Заранее спасибо.
 -- 
 Отправлено через сервер Talk.Ru - http://www.talk.ru
 --- ifmail v.2.15dev5
  * Origin: Talk.Ru (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 child process   Timur V. Irmatov   06 Sep 2001 13:37:04 
Архивное /ru.perl/6488d90ca12e.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional