|
|
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)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/6488d90ca12e.html, оценка из 5, голосов 10
|