Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.
Fehlerbehandlung
HI
Ich wolte mal fragen wie genau mann auf fehlerbehandung achten muss
habe jetzt viele codes gesehen und auch viele beispielcodes z.b. vorbesprechung Klausur
Da wurden für z.b signale gänzlich keine fehlerbehandlung durchgeführt. Können wir das in der klausur auch weglassen oder sollte mann grundsätzlich überall fehlerbehandlung machen??
wird auch in vielen beispielen im internet nie durchgeführt aber laut man page gibt es sowas.
MFG
Eine verwandte Frage habe ich heute früh nebenan beantwortet.
“Dynamische” Fehler müssen abgefangen werden, “statische” brauchen es nicht.
Da hab ich dann auch mal eine echt blöde Frage dazu: Es gibt ja bekanntlich Funktionen die die [m]errno [/m]setzen und welche die es nicht tun. Für diejenigen die es tun sollte man (da Zeitersparnis) die [m]static int die(const char message[])[/m] Funktion verwenden. Mea culpa das ich nicht in jeder Übung war, aber gibt es eine Auflistung oder eine Merkhilfe welche Funktionen die [m]errno [/m]setzen und welche die es nicht tun? Oder ist auch konstantes [m]fprintf[/m] + [m]exit[/m] ohne [m]errno [/m]Meldung erlaubt? Ansonsten muss ich jetzt wirklich für alle aus der Übung bekannten Funktionen die manpage durchgehen (was vielleicht auch gar nicht so verkehrt ist für den Spicker ).
Alle Bibliotheksfunktionen und alle Systemaufrufe, die laut Man-Page fehlschlagen können, setzen die [m]errno[/m]. Die einzige Ausnahme, die wir in den Übungen behandelt haben, sind die Pthread-Funktionen; die liefern einen Fehlercode zurück, den man selber in die [m]errno[/m] schreiben darf.
Und [m]getaddrinfo()[/m] macht sehr seltsames Halb-und-halb-Gedöns: Manche Fehler werden über den Rückgabewert gemeldet, andere über die [m]errno[/m] - genaue Infos siehe Man-Page.
Nachtrag: Obige Aussagen präzisiert und erweitert.
getaddrinfo ist keine Bibliotheksfunktion?
Doch, aber ein Sonderfall. Vermutlich gäbe es dazu die Manpage in der Klausur.