table of contents
other sections
ERRNO(3) | Linux-Programmierhandbuch | ERRNO(3) |
BEZEICHNUNG¶
errno - Nummer des letzten aufgetretenen FehlersÜBERSICHT¶
#include <errno.h>BESCHREIBUNG¶
Die Header-Datei <errno.h> definiert die Integer-Variable errno. Sie wird von Systemaufrufen (und einigen Bibliotheksfunktionen) gesetzt, um anzuzeigen, was schief gelaufen ist. Ihr Wert ist nur dann von Bedeutung, wenn der Rückgabewert des Funktionsaufrufs einen Fehler anzeigt (d.h. -1 bei den meisten Systemaufrufen; -1 oder NULL bei den meisten Bibliotheksfunktionen). Eine erfolgreich aufgerufene Funktion darf den Wert von errno ändern.- E2BIG
- Argumentliste zu lang (POSIX.1)
- EACCES
- Keine Berechtigung (POSIX.1)
- EADDRINUSE
- Adresse schon in Gebrauch (POSIX.1)
- EADDRNOTAVAIL
- Adresse nicht verfügbar (POSIX.1)
- EAFNOSUPPORT
- Adressfamilie nicht unterstützt (POSIX.1)
- EAGAIN
- Ressource zeitweise nicht verfügbar (darf der gleiche Wert sein wie EWOULDBLOCK, POSIX.1)
- EALREADY
- Verbindung ist schon aufgebaut (POSIX.1)
- EBADE
- Austausch ungültig
- EBADF
- Schlechter Dateideskriptor (POSIX.1)
- EBADFD
- Dateideskriptor in schlechtem Zustand
- EBADMSG
- Ungültige Nachricht (POSIX.1)
- EBADR
- Ungültiger Anforderungsdeskriptor
- EBADRQC
- Ungültiger Anforderungscode
- EBADSLT
- Ungültiger Slot
- EBUSY
- Gerät oder Ressource beschäftigt/belegt
- ECANCELED
- Operation abgebrochen (POSIX.1)
- ECHILD
- Keine Kind-Prozesse (POSIX.1)
- ECHRNG
- Kanalnummer außerhalb des zulässigen Bereichs
- ECOMM
- Kommunikationsfehler beim Senden
- ECONNABORTED
- Verbindung abgebrochen (POSIX.1)
- ECONNREFUSED
- Verbindung abgelehnt (POSIX.1)
- ECONNRESET
- Verbindung zurückgesetzt (POSIX.1)
- EDEADLK
- Verklemmung beim Zugriff auf eine Resource (deadlock) vermieden (POSIX.1)
- EDEADLOCK
- Synonym für EDEADLK
- EDESTADDRREQ
- Zieladresse erforderlich (POSIX.1)
- EDOM
- Argument einer mathematischen Funktion außerhalb des Definitionsbereichs (POSIX.1, C99)
- EDQUOT
- Festplattenkontingent (disk quota) überschritten (POSIX.1)
- EEXIST
- Datei schon vorhanden (POSIX.1)
- EFAULT
- Ungültige Adresse (POSIX.1)
- EFBIG
- Datei zu groß (POSIX.1)
- EHOSTDOWN
- Host/Rechner ist nicht in Betrieb
- EHOSTUNREACH
- Host/Rechner nicht erreichbar (POSIX.1)
- EIDRM
- Identifier/Bezeichner/Kennung entfernt (POSIX.1)
- EILSEQ
- Ungültige Byte-Sequenz (POSIX.1, C99)
- EINPROGRESS
- Operation wird gerade ausgeführt (POSIX.1)
- EINTR
- Aufruf einer unterbrochenen Funktion (POSIX.1); siehe signal(7)
- EINVAL
- Ungültiges Argument (POSIX.1)
- EIO
- E/A-Fehler (POSIX.1)
- EISCONN
- Socket ist verbunden (POSIX.1)
- EISDIR
- Ist ein Verzeichnis (POSIX.1)
- EISNAM
- Ist eine Datei benannten Typs
- EKEYEXPIRED
- Schlüssel ist abgelaufen
- EKEYREJECTED
- Schlüssel wurde vom Dienst zurückgewiesen.
- EKEYREVOKED
- Schlüssel wurde widerrufen.
- EL2HLT
- Ebene 2 angehalten
- EL2NSYNC
- Ebene 2 nicht synchronisiert
- EL3HLT
- Ebene 3 angehalten
- EL3RST
- Ebene 3 angehalten
- ELIBACC
- Zugriff auf notwendige Laufzeitbibliothek nicht möglich
- ELIBBAD
- Zugriff auf eine beschädigte Laufzeitbibliothek
- ELIBMAX
- Versuch, zu viele Laufzeitbibliotheken zu linken
- ELIBSCN
- Bibliotheksabschnitt in a.out defekt
- ELIBEXEC
- Eine Laufzeitbibliothek kann nicht direkt ausgeführt werden
- ELOOP
- Zu viele Ebenen von symbolischen Links (POSIX.1)
- EMEDIUMTYPE
- Falscher Medientyp
- EMFILE
- Zu viele offene Dateien (POSIX.1)
- EMLINK
- Zu viele Links (POSIX.1)
- EMSGSIZE
- Nachricht zu lang (POSIX.1)
- EMULTIHOP
- Multihop (mehrere Etappen) versucht (POSIX.1)
- ENAMETOOLONG
- Dateiname zu lang (POSIX.1)
- ENETDOWN
- Netzwerk außer Betrieb (POSIX.1)
- ENETRESET
- Verbindungsabbruch durch das Netzwerk (POSIX.1)
- ENETUNREACH
- Netzwerk nicht erreichbar (POSIX.1)
- ENFILE
- Zu viele offene Dateien im System (POSIX.1)
- ENOBUFS
- Kein Platz für Puffer verfügbar (POSIX.1 (XSI STREAMS option))
- ENODATA
- Im STREAM-Head der Lese-Warteschlange ist keine Nachricht verfügbar. (POSIX.1)
- ENODEV
- Kein solches Gerät vorhanden (POSIX.1)
- ENOENT
- Datei oder Verzeichnis nicht vorhanden (POSIX.1)
- ENOEXEC
- Fehler im Format der Programmdatei (POSIX.1)
- ENOKEY
- Erforderlicher Schlüssel nicht verfügbar
- ENOLCK
- Keine Sperren verfügbar (POSIX.1)
- ENOLINK
- Link wurde erschwert (POSIX.1)
- ENOMEDIUM
- Kein Medium gefunden
- ENOMEM
- Nicht genügend Platz (POSIX.1)
- ENOMSG
- Keine Nachricht vom gewünschten Typ (POSIX.1)
- ENONET
- Machine ist nicht an das Netzwerk angeschlossen
- ENOPKG
- Paket nicht installiert
- ENOPROTOOPT
- Protokoll nicht verfügbar (POSIX.1)
- ENOSPC
- Auf dem Gerät ist kein Speicherplatz mehr verfügbar (POSIX.1)
- ENOSR
- Keine STREAM-Ressourcen (POSIX.1 (Option XSI STREAMS))
- ENOSTR
- Ist kein STREAM (POSIX.1 (XSI STREAMS option))
- ENOSYS
- Funktion nicht implementiert (POSIX.1)
- ENOTBLK
- Blockgerät erforderlich
- ENOTCONN
- Der Socket ist nicht verbunden (POSIX.1)
- ENOTDIR
- Ist kein Verzeichnis (POSIX.1)
- ENOTEMPTY
- Das Verzeichnis ist nicht leer (POSIX.1)
- ENOTSOCK
- Ist kein Socket (POSIX.1)
- ENOTSUP
- Operation wird nicht unterstützt (POSIX.1)
- ENOTTY
- Unpassende E/A-Steuerungsoperation (POSIX.1)
- ENOTUNIQ
- Name ist im Netzwerk nicht eindeutig
- ENXIO
- Kein solches Gerät/Adresse (POSIX.1)
- EOPNOTSUPP
- Operation für Sockets nicht unterstützt (POSIX.1)
- EOVERFLOW
- Wert zu groß für Speicherung im Datentyp (POSIX.1)
- EPERM
- Operation nicht gestattet (POSIX.1)
- EPFNOSUPPORT
- Protokollfamilie nicht unterstützt
- EPIPE
- Pipe unterbrochen (POSIX.1)
- EPROTO
- Protokollfehler (POSIX.1)
- EPROTONOSUPPORT
- Protokoll nicht unterstützt (POSIX.1)
- EPROTOTYPE
- Falscher Protokolltyp für Socket (POSIX.1)
- ERANGE
- Ergebnis zu groß (POSIX.1, C99)
- EREMCHG
- Entfernte Adresse geändert
- EREMOTE
- Objekt ist entfernt/nicht lokal
- EREMOTEIO
- Entfernter E/A-Fehler
- ERESTART
- Unterbrochener Systemaufruf sollte erneut gestart werden
- EROFS
- nur-lesbares Dateisystem (POSIX.1)
- ESHUTDOWN
- Senden nach Herunterfahren des Transport-Endpunktes nicht möglich
- ESPIPE
- ungültiger Seek (POSIX.1)
- ESOCKTNOSUPPORT
- Socket-Typ nicht unterstützt
- ESRCH
- Kein passender Prozess gefunden (POSIX.1)
- ESTALE
- »Abgestandener« Datei-Handle (POSIX.1)
- ESTRPIPE
- Stream-Pipelinefehler
- ETIME
- Zeit abgelaufen (POSIX.1 (XSI STREAMS option))
- ETIMEDOUT
- Die Wartezeit für die Verbindung ist abgelaufen (POSIX.1)
- ETXTBSY
- Textdatei belegt (POSIX.1)
- EUCLEAN
- Struktur muss aufgeräumt werden
- EUNATCH
- Kein zugeordneter Treiber für Protokoll
- EUSERS
- Zu viele Benutzer
- EWOULDBLOCK
- Operation würden blockieren (darf der gleiche Wert sein wie EAGAIN, POSIX.1)
- EXDEV
- Ungültiger Link (POSIX.1)
- EXFULL
- Austausch/Vermittlungsstelle voll
ANMERKUNGEN¶
Ein verbreiteter Programmierfehler istif (somecall() == -1) { printf("somecall() fehlgeschlagen\n"); if (errno == ...) { ... } }
Hier muss errno nicht mehr den Wert haben, den er bei der Rückkehr aus somecall() hatte. (D.h., der Wert konnte durch den Aufruf von printf(3) verändert werden). Wenn der Wert von errno über einen Bibliotheksaufruf erhalten bleiben soll, muss er gespeichert werden:
if (somecall() == -1) { int errsv = errno; printf("somecall() fehlgeschlagen\n"); if (errsv == ...) { ... } }
Im traditionellen C war es gebräuchlich, errno manuell (mittels extern int errno) zu deklarieren anstatt <errno.h> einzubinden. Unterlassen Sie das. Das wird mit modernen Versionen der C-Bibliothek nicht funktionieren. Es kann aber auf (sehr) alten UNIX-Systemen vorkommen, dass <errno.h> fehlt und die Deklaration erforderlich ist.
SIEHE AUCH¶
err(3), error(3), perror(3), strerror(3)KOLOPHON¶
Diese Seite ist Teil der Veröffentlichung 3.42 des Projekts Linux- man-pages. Eine Beschreibung des Projekts und Informationen, wie Fehler gemeldet werden können, finden sich unter http://www.kernel.org/doc/man-pages/.ÜBERSETZUNG¶
Die deutsche Übersetzung dieser Handbuchseite wurde von Martin Eberhard Schauer <Martin.E.Schauer@gmx.de> erstellt.9. Juli 2008 |