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)