[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Standard für Rückgabewerte bei Funktionen in C?



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


Reply to: