return 0; <-- warum?

MalMAC

Aktives Mitglied
Thread Starter
Dabei seit
22.06.2006
Beiträge
1.692
Reaktionspunkte
377
Kann mir jemand erklären, was das genau bedeutet und warum man das braucht?
 
Damit wird von einer Funktion eine 0 zurückgegeben. =o)

Das kann zum Beispiel sinnvoll sein um herauszufinden, ob alles durchgelaufen ist. Weiter meinen manche Programmierer, dass eine Funktion _immer_ etwas zurückgeben soll und deshalb auch wenn es theoretisch nicht notwendig ist dieses return 0; ans Ende setzen.
 
MalMAC schrieb:
Kann mir jemand erklären, was das genau bedeutet und warum man das braucht?

mwhiegl hat es ja schon grob erklärt, aber ohne Kontext ist diese Frage relativ sinnlos.

Alex
 
return 0; stand bisher (bei den Porgrammen, die mir begegnet sind) immer als letztes da. Hab aus Spass mal return 1; gesetzt - dann hieß es, das das Programm nicht "normal" oder so ähnlich beendet worden ist.

Wieso muß am Ende eines Programms eine Null zurückgegeben werden - ist das nicht Wurst, das Programm ist doch zu Ende, mhm?
 
Das Programm wird ja von "jemandem" oder "etwas" ausgeführt -- z.B. von der Shell.
Und die möchte gerne wissen, ob alles OK war.

Alex
 
ok, und die shell (ist die konsole oder?) - die ist dann zufrieden, wenn ich ihr eine Null zum Schluß gebe? bzw. wieso weiß die dann, daß alles ok war?

Ich weiß, ich nerv euch mit trivialen Fragen - aber ich steige da noch nicht durch, vieln Dank für die geduldigen Antworten.:cake:
 
"The C Standard (ISO/IEC 9899:1999 (``ISO C99'')) defines the values 0, EXIT_SUCCESS, and EXIT_FAILURE as possible values of status."
Alex
 
ok, und die shell (ist die konsole oder?) - die ist dann zufrieden, wenn ich ihr eine Null zum Schluß gebe?

:jaja: genau !

bzw. wieso weiß die dann, daß alles ok war?

Weil es so definiert ist. Es wird ein Exit-Code zurückgegeben. 0 heißt alles o.k., alles Andere ist ein Fehler, ob ein Exit-Code ungleich 0 noch zusätzliche Information enthält ( etwa ob exit-Code 1 etwas anderes meint als Exit-Code 2) ist offen und kann frei festgelegt werden.

Konsole ist übrigens die technische Umsetzung. Heute ist das ein Terminal-fenster, früher war das durchaus Hardware. Auf den Konsolen läuft dann immer eine Shell die die Benutzereinagben uns Systemausgaben behandelt. Daher spricht man meist eher von der Shell als der Konsole.
 
Vielen Dank - jetzt hab ich das verstanden.
 
Du kannst den Rückgabewert auch dafür verwenden bestimmte Abfragen zu machen, heisst, wenn du wissen möchtest, wo ein Fehler auftritt, dann kannst du verschiedene Werte zurückgeben lassen, um zu sehen, wo der fehler passiert.

Viele nutzen nur 0 und 1, es ist aber keine Boolsche Variable, also kannst du den Return-Wert auch für deine jeweiligen Zwecke belegen.
 
Wie schon gesagt wurde koennen Programme beim Beenden Werte zurueckgeben, was die Werte genau bedeuten haengt vom Programm ab. Normal ist es aber so dass 0 heisst, dass das Programm normal beendet wurde und alles ungleich 0 einen Fehler signalisiert.

Mit diesen Rueckgabewerten kann man nun in Shell-Scripten arbeiten, Bedingungen bauen (wenn Programm korrekt ausgefuehrt wurde, mache dies sonst das usw.)...

Die bash schreibt z.B. den Rueckgabewert des zuletzt aufgerufenen Programms in die Shell-Variable $? und das kann man sich dann z.B. mit "echo $?" ausgeben oder ueber if/test-Bedingungen weiterverarbeiten usw...
 
Zurück
Oben Unten