|
Dans ce cas le processus discute avec un copie de lui
même. Le fils continue à exécuter le script au lieu
d'essayer d'exécuter un autre commande. Si la commande open contient
comme second argument "|- " la fin du pipe est rattaché
au STDIN du fils alors que si il contient "-| " on attache le
pipe au STDOUT ( c'est à dire que l'on lira sur le handle de fichier
ce qu'écrit le fils).
#!/usr/bin/perl
do{
$pid = open(KID_TO_WRITE,"|-");
unless (defined $pid){
warn "fork impossible : $!";
}
}until defined $pid;
if($pid){#pere
print KID_TO_WRITE "des_donnee";
close (KID_TO_WRITE) or warn "fils sorti $?";
}
else{#fils
open (file, ">file") or die "open impossible :
$!";
while(<STDIN>){
print file;
}
exit;
}
|
REMARQUE : Ces opérations sont des forks UNIX complets, ce qui
veut dire qu'elles peuvent ne pas être implémentées
correctement sur d'autres systèmes.
|
|