Provided by: manpages-de-dev_1.11-1_all bug

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.

       Gültige Fehlernummern sind allesamt ungleich 0; kein Systemaufruf  und  keine  Bibliotheksfunktion  setzt
       errno auf 0.

       Für  einige  Systemaufrufe  und  Bibliotheksfunktionen  (wie  z.B.  getpriority(2))  ist  -1 ein gültiger
       Rückgabewert bei erfolgreichem Funktionsaufruf. In  solchen  Fällen  kann  eine  erfolgreiche  von  einer
       fehlgeschlagenen  Ausführung  der  Funktion  unterschieden  werden,  indem  vor dem Aufruf errno auf Null
       gesetzt wird und wenn der Rückgabestatus einen Fehler anzeigt, errno untersucht wird.

       Der ISO-C-Standard definiert errno als veränderbaren lvalue des Typs int, der nicht  explizit  deklariert
       sein  muss;  errno  darf ein Makro sein. Jeder Thread erhält eine eigene, lokale errno; wird sie in einem
       Thread gesetzt, wirkt sich das nicht auf ihren Wert in anderen Threads aus.

       Mit einer Ausnahme müssen alle von POSIX.1 beschriebenen Fehlernamen unterschiedliche Werte haben. EAGAIN
       und EWOULDBLOCK dürfen gleich sein.

       Es folgt eine Liste der symbolischen Fehlernamen, die für Linux definiert sind. Einige von ihnen sind mit
       POSIX.1 gekennzeichnet, weil der Name von POSIX.1-2001 definiert wird; analog weist C99 auf C99 hin.

       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); typischerweise wird dies durch Überschreiten  der  in
                       getrlimit(2) beschriebenen Ressourcenbegrenzung RLIMIT_NOFILE hervorgerufen

       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 ((POSIX.1); dies ist wahrscheinlich ein Ergebnis der Beschränkung
                       /proc/sys/fs/file-max (siehe proc(5)).

       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)

                       (ENOTSUP  und  EOPNOTSUPP  haben auf Linux den gleichen Wert, gemäß POSIX.1 sollten diese
                       Fehlerwerte unterschiedlich sein.)

       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)

                       Dieser Fehler kann für NFS- und für andere Dateisysteme auftreten.

       ESTRPIPE        Stream-Pipelinefehler

       ETIME           Zeit abgelaufen  (POSIX.1 (XSI STREAMS option))

                       (POSIX.1 nennt das »STREAM ioctl(2)  timeout«)

       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 ist

           if (somecall() == -1) {
               printf("somecall() fehlgeschlagen\n");
               if (errno == ...) { ... }
           }

       Hier muss errno nicht mehr den Wert haben, den er bei der Rückkehr aussomecall() 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

       errno(1), err(3), error(3), perror(3), strerror(3)

KOLOPHON

       Diese  Seite  ist  Teil  der  Veröffentlichung  4.04  des Projekts Linux-man-pages. Eine Beschreibung des
       Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite 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>,   Mario   Blättermann   <mario.blaettermann@gmail.com>  und  Helge  Kreutzmann
       <debian@helgefjell.de> erstellt.

       Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder  neuer
       bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

       Wenn  Sie  Fehler  in  der  Übersetzung  dieser  Handbuchseite  finden, schicken Sie bitte eine E-Mail an
       <debian-l10n-german@lists.debian.org>.

                                                28. Dezember 2015                                       ERRNO(3)