Frage

Wenn ja, auf welchem Betriebssystem, shell oder was auch immer?

Betrachten Sie das folgende java-Programm (ich bin mit java nur als Beispiel, jede Sprache ist gut für diese Frage, die mehr über die Betriebs-Systeme):

public class ExitCode {
    public static void main(String args[]) {
        System.exit(Integer.parseInt(args[0]));
    }
}

Es läuft auf Linux und bash, es gibt immer Werte kleiner gleich 255, z.B.(echo $? druckt den exit-code des vorherigen Befehls)

> java ExitCode 2; echo $?
2

> java ExitCode 128; echo $?
128

> java ExitCode 255; echo $?
255

> java ExitCode 256; echo $?
0

> java ExitCode 65536; echo $?
0

BEARBEITET:die (nur noch) Antwort unten vollständig erklären, was passiert auf UNIX-Varianten.Ich bin immer noch Fragen, über andere Betriebssysteme.

War es hilfreich?

Lösung

Nicht möglich ist es auf Unix und Derivate.Der exit-status-Informationen zurückgegeben, besteht aus zwei 8-bit-Felder, die eine enthält den exit-status, und die andere mit Informationen über die Ursache des Todes (0 impliziert geordneten Austritt unter Programm-Kontrolle, andere Werte anzeigt, dass ein signal getötet, und der angibt, ob ein Kern abgelagert wurde).

Andere Tipps

Auf modernen Windows-Betriebssystem selbst, und die Standard-Konsole shell - (CMD.EXE), zu akzeptieren und zu zeigen, exit-codes ganz zumindest ist auch die ganze Palette von 32-bit-Ganzzahlen mit Vorzeichen.Läuft Ihr Beispiel weiter oben CMD.EXE gibt den exit-codes, die Sie gefragt, für :

> java ExitCode 2
> echo %errorlevel%
2

> java ExitCode 128
> echo %errorlevel%
128

> java ExitCode 255
> echo %errorlevel%
255

> java ExitCode 256
> echo %errorlevel%
256

> java ExitCode 65536
> echo %errorlevel%
65536

Windows hat nicht wirklich das Konzept von Unix-Signale, noch wird es versuchen, Sie zu entführen der exit-code, um zusätzliche Informationen hinzuzufügen, so lange, wie Sie Ihre shell (oder was auch immer Programm endet Lesen der exit-code) nicht, dass entweder, sollten Sie wieder die exit-codes zurückgegeben wurde.Zum Glück, Programme, Microsoft C runtime (inklusive aller Programme zusammengestellt mit dem MS Visual C++) Erhaltung der exit-code ist aus bestehenden Prozesse.

Windows hat viele weitere exit-codes über 14.000.(Ich bin mir sicher, dass Sie oft sah einige von Ihnen auf dem eigenen Bildschirm).

Hier kommt:

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top