Thread open(CHILD, "|-");: nicht Windows-kompatibel? (4 answers)
Opened by Froschpopo at 2005-04-02 12:15

renee
 2005-04-02 16:45
#53161 #53161
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
http://wiki.perl-community.de/bin/view/Wissensbasi...

Wenn Du mehrere forks() machen willst und zu jedem Child eine Pipe haben willst:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#! /usr/bin/perl

use strict;
use warnings;
use POSIX ":sys_wait_h";


fork_it();

#--------------------------------------------------------------------------------#
# Subroutines #
#--------------------------------------------------------------------------------#

##
# fork_it starts several processes for domain-requests
##
sub fork_it{

for (1..5){
pipe(READER,WRITER);
my $pid=fork();
if($pid==-1){
warn($!);
last;
}
if($pid){
close WRITER;
while(my $line = <READER>){
# lese aus der Pipe
}
$pids{$pid}=1;
}
else{
close READER;
print WRITER "irgendwas\n";
exit(0);
}
}
while(keys %pids){
my $pid=waitpid( -1, WNOHANG );
die "$!" if $pid == -1;
delete $pids{$pid};
}
}
}# end fork_it
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/

View full thread open(CHILD, "|-");: nicht Windows-kompatibel?