Warum ist Perl $? Rücksendung der falsche Wert für den Rückgabewert von fork-Prozess?

Betrachten Sie dieses einfache Beispiel fork()ing dann zu warten, dass ein Kind sterben in Perl:

#!/usr/bin/perl

use strict;
use warnings;

if (fork() == 0) {
        exit(1);
}

waitpid(-1,0);

print $?;

Dem das Skript läuft auf Solaris 10-bekomme ich dieses Ergebnis:

$ perl test.pl
256

Ich vermute, die Werte sind nach oben verschoben, wenn ich denn tun exit(2) im Kind, der Ausgang wird 512.

Ich kann nicht scheinen, um die zu finden, dokumentiert in perl -waitpid. Ist das ein Fehler auf meinem system oder mache ich etwas falsch?

InformationsquelleAutor Mike | 2010-05-25
Schreibe einen Kommentar