Programm ohne weitere Ausgabe beenden?
-
hallo,
ich habe eine frage..
nach der eingabe von "guit" soll sich mein programm ohne weitere ausgabe beenden..ist das richtig, wenn ich es mit return 0; mache?
danke für jede hilfe
-
Ein
return
aus dermain
, egal mit welchem Wert, beendet das Programm. Ebenso ein Aufruf der Funktionexit
, von egal wo im Programm. Dasreturn
und diese Funktion gelten als "normal program termination", das heißt, bevor das Programm tatsächlich beendet wird, passiert noch folgendes:
1. Mitatexit
registrierte Funktionen werden aufgerufen. Diese können theoretisch auch noch ausgaben machen.
2. Alle offenen Streams werden geflushed und geschlossen, tmpfiles werden entfernt.
3. Der Rückgabewert dermain
bzw. das Argument vonexit
werden an die ausführende Umgebung zurück gegeben
4. Dann ist wirklich schluss.Dahingegen gibt es noch die
_Exit
-Funktion, welche mindestens den Schritt 1. überspringt, jedoch auch als "normal program termination gilt", das heißt Schritt 3. erfolgt auf jeden Fall. Ob 2. erfolgt ist "implementation defined".Als letztes gibt es noch die Funktion
abort
, die als "unsuccessful termination" gilt. Es finden die Schritte wie bei_Exit
statt, aber bei 3. wird ein Fehlerwert zurück gegeben.Diese verschiedenen Abbruchszenarien können durch verschiedene Fehlerszenarien im Programm ausgelöst werden oder manuell durch Aufruf dieser Funktionen.
Dies ist jetzt sehr kompliziert erklärt, aber manchmal haben einfache Fragen eben komplizierte Antworten, wenn man genau sein möchte. Höchstwahrscheinlich möchtest du aber wirklich nur ein einfaches
return
aus der main.
-
ok ich verstehe..
danke für deine hilfe