Re: perl & IPC

From
Alexander Timoshenko ()
To
Andrew Degtiariov ()
Date
2003-06-06T14:20:02Z
Area
RU.UNIX.PROG
From: Alexander Timoshenko <gonzo@univ.kiev.ua>

Andrew Degtiariov <ad@astral-on.net> wrote:
> Обьясните, пожалуйста, где я жестоко лопухнулся. Почему нижеприведеный
> скрипт работает так странно (в скрипте 4 раза вызывается /bin/ls):
> ad@ad:/usr/home/ad>perl test.pl |wc -w
>   18939
> ad@ad:/usr/home/ad>ls | wc -w
>     107
> ad@ad:/usr/home/ad>
> 
> 18939/107=177; Отчего такое происходит? Иногда запуск приводит к
> спонтанному ребуту станции (естественно, запуск не из под root'а)
	child-ветки не должны возвращаться из write_to_separate_procces,
иначе куски основной программы выполняются по нескольку раз. 

PS 
	А перл здесь не при чем Ж) 
> 
> Скрипт:
> ------- cut ------
> #!/usr/bin/perl
> 
> 
> use POSIX qw(:sys_wait_h);
> 
> $kids_limit = 2;
> $kids = {};
> 
> write_to_separate_procces(undef, "/bin/ls");
> write_to_separate_procces(undef, "/bin/ls");
> write_to_separate_procces(undef, "/bin/ls");
> write_to_separate_procces(undef, "/bin/ls");
> 
> sub write_to_separate_procces($$) {
>    my $data_ref    = $_[0];
>    my $program     = $_[1];
> 
	.. skip ..
> 
>    print $string;
     exit;
> }
> 
> --- end cut ---
> 

-- 
gonzo
--- ifmail v.2.15dev5
 * Origin: National Taras Shevchenko University of Kyiv (2:5020/400)