Hallo Andreas! > eine Frage an die C-Programmierer unter euch: Es geht um Funktionen, die > durch Ihren Rückgabewert anzeigen, ob die Funktion erfolgreich > abgearbeitet wurde oder ob ein Fehler aufgetreten ist. Gibt es hier > einen Standard für den Rückgabewert? Ich habe schon folgende beiden > Varianten gesehen: > > * 0 bei Erfolg und 1 bei Fehler > * 1 bei Erfolg und 0 bei Fehler > > Die main-Funktion sollte zumindest unter Linux bei Erfolg 0 zurückgeben. > Dazu eignen sich die Konstanten EXIT_FAILURE und EXIT_SUCCESS aus > stdlib.h. Aber wie sieht es bei Funktionen innerhalb eines Programms > aus? Hier sind diese Konstanten meines Wissens nicht angebracht. > > Gibt es dazu einen ANSI- oder POSIX-Standard? Keine Ahnung. Aber es kommt immer auf die Funktion drauf an. Wenn Du Zahlen zurückgibst, dann ist das sinnvollste (was ich auch immer mache), bei Erfolg 0 zurückzugeben und bei bei Fehler ungleich null, wobei Du Dir auch einen eigenen Fehlercode wie EXIT_FAILURE ausdenken kannst. Das ist gut bei großen Applikationen oder Bibliotheken. Anders ist es, wenn Du eine Zahl aus einer Funktion zurückgeben willst. Da kannst Du entweder einen weiteren Parameter mitgeben, in der der Fehlercode gespeichert wird oder eine Fehlercode zurückgeben oder 0 und dann die Variable als Pointer in den Funktionsaufruf mit rein tun. Natürlich können auch Pointer zurückgeben werden. Und da wird NULL zurückgeben bei Fehler. In Standardfunktionen wird 0 zurückgeben bei Erfolg und oft die Zahl errno gesetzt, wenn es Fehler gibt. CU Michael -- ,''`. Michael Ott, e-mail: michael at zolnott dot de : :' : Debian SID on Thinkpad T43: `. `' http://www.zolnott.de/laptop/ibm-t43-uc34nge.html `-
Attachment:
pgpkEh7fApGpL.pgp
Description: PGP signature