PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : atexit und exit


amida maru
2008-09-01, 19:01:14
Hallo ich habe jetzt ein paar Fragen zu den Funktionen atexit() und exit().
Wenn ich atexit eine Funktion übergebe, wird diese ausgeführt sobald das Programm beendet wird? Und was bringt exit() genau. da muss man ja ein "errorcode" übergeben. Was bringt der errorcode genau.
Am besten schaut ich euch der kleinen Code hier an:


main(int argc, char *argv[])
{
if ( SDL_Init(SDL_INIT_AUDIO|SDL_INIT_VIDEO) < 0 ) {
fprintf(stderr, "SDL konnte nicht initialisiert werden: %s\n", SDL_GetError());
exit(1);
}
atexit(SDL_Quit);

...
}


Vielen Dank schonma...

Grüße,
Tibo

Ectoplasma
2008-09-01, 19:42:06
Der Error Code kann von einem Skript ausgewertet werden und darauf dann entsprechend reagieren.

amida maru
2008-09-01, 21:31:31
ahso also brauchts mich nicht zu interessieren?

Ectoplasma
2008-09-02, 00:11:53
Nicht wirklich.

rotalever
2008-09-02, 15:15:38
Einfach wenn ein Fehler passiert exit(1) aufrufen (bzw. return 1 in der main Funktion) und exit(0) (bzw. return 0 in der main Funktion) falls kein Fehler passiert.
Wenn man die Errorcodes nicht weiter benötigt (man benötigt sie zum Beispiel nicht, wenn man nicht weiß, wofür sie gut sind ;)), dann reicht es dieses 1 und 0 Zeug zu machen.

Gast
2008-09-09, 21:46:40
http://www.cl.cam.ac.uk/cgi-bin/manpage?3+exit
The C standard specifies two defines EXIT_SUCCESS and EXIT_FAILURE that may be passed to exit() to indicate successful or unsuccessful termination, respectively.

Die richtigen Zahlenwerte richten sich ja nach dem Betriebssystem. 1 würde z.B. von AmigaOS als Warning interpretiert werden und nicht als Failure. IIRC ist Failure dort als 20 definiert.