Hallo Experten,
ich hoffe ich treffe mit meiner Frage auf lächelnde und wissende Gesichter.
Mein kleines Beispiel-Programm läßt es nicht zu, den Return-Code des Systemaufrufs zu prüfen.
Das folgende Script ist reduziert auf das Problem.
#!/bin/perl
sub sigchldHandler {
wait() ;
}
$SIG{CHLD} = \&sigchldHandler ;
my $pid = fork();
if ( $pid == 0 ) {
$Result=`ls -l`;
print "ReturnCode = $? \n";
}
Das Ergebnis ist immer "ReturnCode = -1"
Erwarten würde ich eine "0" bzw eine "2" wenn das Kommando in einen Fehler läuft.
Ich befinde mich auf einem Solaris 10 Server mit Perl 5.8.4
Nochmal kurz beschrieben: Ich möchte in einem wesentlich größeren Programm mehrere parallele Systemaufrufe starten.
Das funktioniert wunderbar, nur leider kann ich nicht mit Hilfe des Return-Codes abfragen wie sich das Kommando beendet hat.
Meine Suche durchs WWW hat da leider garnichts ergeben.
Ich bitte höflichst um eure Unterstützung. Vielen Dank :-)
Gruß
Tobias
Last edited: 2011-11-28 16:29:41 +0100 (CET)