fork pipe stdout Windows
am 06.12.2006 13:45:19 von ronny.klugeHallo zusammen,
in folgendem Programm Beispiel versuche ich im Kindprozess STDOUT in
die vorher erstellte Pipe umzuleiten, jedoch erhalte ich im
Parent-Prozess keine Nachricht. (& keinerlei Fehlermeldungen)
Ich habe für diese Verhalten absolut keine Lösung, fällt euch dazu
was ein ?
Gruß, Ronny.
____________________________________________________________ _______________
use POSIX qw(:sys_wait_h);
pipe (READ, WRITE);
if ($pid =3D fork)
{
# Parent
$SIG{CHLD} =3D sub {1 while (waitpid(-1, WNOHANG)) > 0 };
close WRITE;
}
else
{
die "FEHLER BEI AUSFUEHRUNG FORK: $!\n" unless defined $pid;
# Child
close READ;
open(STDOUT, ">&=3DWRITE") or die "Konnte STDOUT nicht umleiten: $!\n";
syswrite (STDOUT,"Nachricht vom Kind.") or "can not syswrite";
exit;
}
sysread (READ, $info, 100);
print "$info\n";
close READ;
____________________________________________________________ _______________