Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   C bind() Fehlersuche (https://www.delphipraxis.net/192694-c-bind-fehlersuche.html)

A.Griffin 11. Mai 2017 08:22

C bind() Fehlersuche
 
In den man-pages steht zu bind(), dass bei Erfolg 0 zurückgegeben wird und bei einem Fehler -1. Darunter steht eine Liste mit Fehlern die kommen können. Wenn ich nun bind() in einem Programm aufrufe und es einen Fehler gibt, wie finde ich heraus welcher von den in der Liste vorkommenden Fehlern nun der aufgetretene ist?

BrightAngel 11. Mai 2017 08:29

AW: C bind() Fehlersuche
 
Hey :)
Das sind einfach vordefinierte Makrokonstanten. Das ist einfach ein numerischer Wert, den du mit dem Errorcode normal über "if" vergleichen kannst.

Gruß, Brighty :)

A.Griffin 11. Mai 2017 08:37

AW: C bind() Fehlersuche
 
Also obwohl bind() nur -1 zurückgibt kann ich einfach errno.h includen und dann mit

Code:
if ( errno == EACCES )
{
fprintf(stderr, "The address is protected, and the user is not the superuser.")
}
das abfragen oder wie meinst du es sonst?

*edit*

Ich habe jetzt gefunden, dass man es so machen kann:
Code:
printf("Oh dear, something went wrong! %s\n", strerror(errno));
Wie würde ich das mit fprintf nutzen? Einfach so?:

Code:
fprintf(stderr, "Oh dear, something went wrong! %s\n", strerror(errno));

BrightAngel 11. Mai 2017 09:08

AW: C bind() Fehlersuche
 
Ah! Du wolltest den Fehlerstring ausgeben. War davon ausgegangen, dass du in einem bestimmten Fehlerfall als Fallback dich anders verhalten willst :oops:

Jup. So hatte ich das im Kopf. Wollte dir Code schreiben, aber am Handy ist das immer ein wenig umständlich... :oops:

Ich habe oft eine separate Funktion definiert, die dann das Errorhandling macht oder gebe je nach Anwendungsfall den Fehler aus meiner Funktion zurück. Ich persönlich mag die globale errno nicht sonderlich, da sie von anderen Calls mitverwendet wird...:roll:

Brighty


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:43 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz