Wie konvertieren von errno in UNIX entsprechenden string?
Gibt es eine Funktion in UNIX zu konvertieren errno den entsprechenden string für z.B. EIDRM "EIDRM". Seine sehr ärgerlich, wenn debug auf Fehler überprüfen mit diesen integer-errnos.
InformationsquelleAutor der Frage avd | 2009-10-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
strerror()
sollte es tun. http://linux.die.net/man/3/strerrorFYI, so dass Sie finden, diese Dinge einfach selbst: Wenn Sie der Typ Mann, der Fehlercode (oder was auch immer Funktion, die Sie untersuchen sind), und der Blick auf die ganz unten auf der Mann-Seite, sehen Sie eine Liste der zugehörigen Funktionen. Wenn Sie
man
jede dieser (nehmen Sie eine Vermutung über die man(N) zu tun, zunächst basierend auf Ihren Namen), finden Sie Häufig die Antwort auf ähnliche Fragen stellen.InformationsquelleAutor der Antwort atk
Nur eine andere Lösung, das löst genau das problem, das Sie haben, aber in Python statt C:
InformationsquelleAutor der Antwort Andrey Vlasovskikh
Gibt es jetzt einen errno-Dienstprogramm verteilt mit dem moreutils-Paket.
InformationsquelleAutor der Antwort Stephen Niedzielski
Ich bin mir nicht sicher über solche
enum
-Stil Namen, aber für debugging und error reporting-Zwecken können Sie verwendenperror(3)
oderstrerror(3)
C-Funktionen, die eine lesbare Darstellung der error-code. Bitte finden Sie auf den man-Seiten für weitere details.InformationsquelleAutor der Antwort Andrey Vlasovskikh
Wenn Sie wirklich wollen, EIDRM und nicht seine Fehler-string: Nein. Aber auf OpenBSD,
druckt eine schöne Tabelle von "...\n89 EIDM\n...", die Sie konvertieren können weiter in eine Datenstruktur für die Programmiersprache, die Sie möchten, um diese Funktion haben.
InformationsquelleAutor der Antwort ayrnieu