error numbers auslesen in Linux
-
hallo,
ich bin gerade dabei mich etwas mit Quota zu beschäftigen.
Hier mal ein Link:
http://www.kernel.org/doc/man-pages/online/pages/man2/quotactl.2.htmlDementsprechend gibt es eine quotactl() Funktion um bestimmte Einstellungen in Quota zu setzen.
Wenn ein Fehler während des Vorgangs auftritt, muss man eine error number auslesen, das in dem Link aber nicht beschrieben ist. Ich möchte nun die error number auslesen um zu wissen welcher Fehler aufgetreten ist. die Funktion gibt aber nur 0 oder -1 zurück.
http://www.kernel.org/doc/man-pages/online/pages/man2/quotactl.2.html#ERRORS
Wie bekomme ich denn bei Linux die error number?
-
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x) in das Forum Linux/Unix verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
errno ist eine allgemeine Funktionalität der C-Bibliothek für Fehlerbehandlung:
http://www.cplusplus.com/reference/clibrary/cerrno/Die Linux-Programmierschnittstelle definiert einfach nur noch mehr mögliche Werte als die klassischen EDOM und ERANGE.
-
Also muss ich dann einfach errno.h einbinden und die errno Variable auslesen.
Aber welches header File muss ich denn einbinden um die error numbers von quota benutzen zu können.
Denn in der sys/quota.h und errno.h stehen diese Fehlernummern nicht drin.
-
anno schrieb:
Aber welches header File muss ich denn einbinden um die error numbers von quota benutzen zu können.
Funktioniert es denn nicht? Denn wo auch immer es steht, es sollte sowohl von der cerrno/errno.h als auch von der sys/quota.h indirekt eingebunden werden. Falls nicht, hast du eine sehr komische POSIX-Bibliothek. Ich weiß nicht mal, ob das so standardkonform wäre. Zur Not sollte Google oder ein grep -r auf /usr/include das herausbekommen.
-
btw. mit man: perror(3) gibt er gleich eine passende Fehlermeldung aus bzw. mit man: strerror(3) bekommst du einen String mit einer Fehlerbeschreibung.