Mögliche Rückgabewerte von int main(int argc, char** argv)
-
Ich hätte eine kleine dumme Frage.
Und zwar möchte ich ein Programm schreiben, welche unterschiedliche Rückgabewerte für die main Funktion hat. Und dabei möchte ich mich an sofern vorhandene Standard's halten. Doch leider weis ich diese nicht.
Was sollte also ein Programm zurückgeben, wenn ein Fehler aufgetaucht ist ?
int main(int argc, char** argv) { ... if (error) return 0; ... return 1; }
-
Standards gibt es da imho nicht (bitte korrigieren, wenn ich mich irre). Du solltest nur besser keine negativen Werte zurückgeben, da if errorlevel in batch-Dateien ja eine größer-gleich-Abfrage ist. if errorlevel -1 würde also auch zutreffen, wenn du 0 zurückgibst. Ich würde einfach durchnummerieren...
EDIT: Und gerade habe ich mir noch dein Beispiel angesehen!
Du solltest im fehlerfreien Fall immer 0 zurückgeben. Fehler sind 1 aufwärts.
-
_matze schrieb:
Standards gibt es da imho nicht (bitte korrigieren, wenn ich mich irre).
im standard gibts EXIT_SUCCESS und EXIT_FAILURE. ob's noch mehr davon gibt, weiss ich aber nicht.

-
~fricky schrieb:
_matze schrieb:
Standards gibt es da imho nicht (bitte korrigieren, wenn ich mich irre).
im standard gibts EXIT_SUCCESS und EXIT_FAILURE. ob's noch mehr davon gibt, weiss ich aber nicht.

Aber klar, jetzt wo du es sagst...

-
... wobei dies einfach 0 und 1 ist. Im Endeffekt gilt die Regel, je höher die Nummer desto "größer"der Fehler oder das Problem.
-
Danke für die Infos.

Dass mit dem Errorlevel hatte ich total vergessen. Und da ich ja mit dem Errorlevel arbeite, habe ich wohl einen Fehler in meinen Batch's.
Im Ganzen gefällt mir die Batch Programmierung immer weniger. Zuviele Dinge werden einfach schlecht unterstützt.
Mal schauen ob ich nicht bald mal auf eine Skriptsprache ala VBS, JS, Perl, Python umsteige.
-
Powershell, oder einfach alle unzulänglichkeiten von normalen Batch Files hinter sich lassen:
http://blog.m-ri.de/index.php/2008/06/22/abgespecktes-4nt-als-tccle-von-jp-software-als-freeware/