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
returnaus dermain, egal mit welchem Wert, beendet das Programm. Ebenso ein Aufruf der Funktionexit, von egal wo im Programm. Dasreturnund diese Funktion gelten als "normal program termination", das heißt, bevor das Programm tatsächlich beendet wird, passiert noch folgendes:
1. Mitatexitregistrierte 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 dermainbzw. das Argument vonexitwerden 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_Exitstatt, 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
returnaus der main
.
-
ok ich verstehe..
danke für deine hilfe