[Vienna-pm] fork & verschiedene filehandles

Marinos J. Yannikos mjy at geizhals.at
Mon Jan 17 06:57:26 PST 2005


Baier Oliver wrote:
> Ich wuerde gerne zu jedem child eine pipe aufmachen, doch weiss ich
> nicht, wie ich's angehen soll. Dieser Ansatz funktioniert nicht:

Ich hatte das mal so gelöst (ohne besonders viele Vorkenntnisse):

use IPC::Run qw (start finish);

     for my $i (0..$np-1)
     {
             my 
($r,$w,$err)=(IO::Handle->new,IO::Handle->new,IO::Handle->new);
             my $h = start \@cmd,
             debug => 1,
             '<pipe', $r,
             '>pipe', $w,
             '2>pipe', $err
             || print STDERR "start failed: $?\n";

             $pconnections[$i]=[$r,$w];
     }

stdin/out (der childs) sind dann $pconnections[$i][0/1]

Nachteil für dich: die child-Prozesse sind hier extern (@cmd = für die 
shell).

AFAIR habe ich das damals nach einem Tipp auf dieser Liste gebastelt ...

MfG,
-mjy


More information about the Vienna-pm mailing list