Provided by: manpages-de-dev_2.15-1build1_all bug

BEZEICHNUNG

       errno - Nummer des letzten aufgetretenen Fehlers

ÜBERSICHT

       #include <errno.h>

BESCHREIBUNG

       Die  Header-Datei  <errno.h>  definiert  die Variable errno mit Typ integer. Sie  wird von
       Systemaufrufen (und einigen Bibliotheksfunktionen)  gesetzt,  um  anzuzeigen,  was  schief
       gelaufen ist.

   errno
       Der  Wert  in errno 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.  Der  Wert  von  errno  wird  niemals  von  irgendeinem  Systemaufruf  oder  einer
       Bibliotheksfunktion auf Null gesetzt.

       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.

   Fehlernummern und -namen
       Gültige Fehlernummer sind alle positiven Zahlen. Die Header-Datei <errno.h> definiert  für
       jeden der möglichen Fehlernummern, die in errno auftreten können, symbolische Namen.

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

       Die Fehlernummern, die jedem symbolischen Namen entsprechen, unterscheiden  sich  zwischen
       UNIX-Systemen  und  selbst zwischen verschiedenen Architekturen unter Linux. Daher ist der
       numerische Wert in der nachfolgenden Liste der Fehlernamen nicht enthalten. Die Funktionen
       perror(3)  und  strerror(3) können dazu verwandt werden, diese Namen in die entsprechenden
       textuellen Fehlermeldungen umzuwandeln.

       Auf einem konkreten Linux-System kann die Liste aller  symbolischen  Fehlernamen  und  der
       entsprechenden  Fehlernummern  mittels  des  Befehls  errno(1) (Teil des Pakets moreutils)
       erhalten werden:

           $ errno -l
           EPERM 1 Die Operation ist nicht erlaubt
           ENOENT 2 Datei oder Verzeichnis nicht gefunden
           ESRCH 3 Kein passender Prozess gefunden
           EINTR 4 Unterbrechung während des Betriebssystemaufrufs
           EIO 5 Eingabe-/Ausgabefehler
           …

       Der Befehl errno(1) kann auch zum Nachschlagen einzelner Fehlernummern und -namen und  der
       Suche  nach  Zeichenketten  aus den Fehlerbeschreibungen wie in dem nachfolgenden Beispiel
       verwandt werden:

           $ errno 2
           ENOENT 2 Datei oder Verzeichnis nicht gefunden
           $ errno ESRCH
           ESRCH 3 Kein passender Prozess gefunden
           $ errno -s Berechtigung
           EACCES 13 Keine Berechtigung

   Liste der Fehlernamen
       In der nachfolgenden Liste der symbolischen Fehlernamen sind verschiedene Namen wie  folgt
       gekennzeichnet:

       *  POSIX.1-2001:   Der   Name  ist  durch  POSIX.1-2001  definiert  und  wird  in  neueren
          POSIX.1-Versionen definiert, außer es ist anderweitig angegeben.

       *  POSIX.1-2008: Der Name ist  in  POSIX.1-2008  definiert,  war  aber  nicht  in  älteren
          POSIX.1-Standards verfügbar.

       *  C99:  Der  Name  ist  durch  C99  definiert.  Es  folgt  eine  Liste  von  symbolischen
          Fehlernamen, die unter Linux definiert sind:

       E2BIG           Argumentliste zu lang (POSIX.1-2001)

       EACCES          Keine Berechtigung (POSIX.1-2001)

       EADDRINUSE      Adresse schon in Gebrauch (POSIX.1-2001)

       EADDRNOTAVAIL   Adresse nicht verfügbar (POSIX.1-2001)

       EAFNOSUPPORT    Adressfamilie nicht unterstützt (POSIX.1-2001)

       EAGAIN          Ressource zeitweise nicht verfügbar (darf der gleiche Wert wie EWOULDBLOCK
                       sein, POSIX.1-2001)

       EALREADY        Verbindung ist schon aufgebaut (POSIX.1-2001)

       EBADE           Austausch ungültig

       EBADF           Schlechter Dateideskriptor (POSIX.1-2001)

       EBADFD          Dateideskriptor in schlechtem Zustand

       EBADMSG         Ungültige Nachricht (POSIX.1-2001)

       EBADR           Ungültiger Anforderungsdeskriptor

       EBADRQC         Ungültiger Anforderungscode

       EBADSLT         Ungültiger Slot

       EBUSY           Gerät oder Ressource beschäftigt/belegt (POSIX.1-2001)

       ECANCELED       Aktion abgebrochen (POSIX.1-2001)

       ECHILD          Keine Kind-Prozesse (POSIX.1-2001)

       ECHRNG          Kanalnummer außerhalb des zulässigen Bereichs

       ECOMM           Kommunikationsfehler beim Senden

       ECONNABORTED    Verbindung abgebrochen (POSIX.1-2001)

       ECONNREFUSED    Verbindung abgelehnt (POSIX.1-2001)

       ECONNRESET      Verbindung zurückgesetzt (POSIX.1-2001)

       EDEADLK         Verklemmung   beim   Zugriff   auf   eine  Resource  (deadlock)  vermieden
                       (POSIX.1-2001)

       EDEADLOCK       Synonym für EDEADLK

       EDESTADDRREQ    Zieladresse erforderlich (POSIX.1-2001)

       EDOM            Argument einer mathematischen Funktion außerhalb  des  Definitionsbereichs
                       (POSIX.1, C99)

       EDQUOT          Festplattenkontingent (disk quota) überschritten (POSIX.1-2001)

       EEXIST          Datei schon vorhanden (POSIX.1-2001)

       EFAULT          Ungültige Adresse (POSIX.1-2001)

       EFBIG           Datei zu groß (POSIX.1-2001)

       EHOSTDOWN       Host/Rechner ist nicht in Betrieb

       EHOSTUNREACH    Host/Rechner nicht erreichbar (POSIX.1-2001)

       EHWPOISON       Speicherseite hat einen Hardware-Fehler

       EIDRM           Identifier/Bezeichner/Kennung entfernt (POSIX.1-2001)

       EILSEQ          Ungültiger  oder  unvollständiger  Multibyte oder weites Zeichen (POSIX.1,
                       C99)

                       Der hier gezeigte Text ist eine Glibc-Fehlerbeschreibung: in POSIX.1  wird
                       dieser Fehler als »Ungültige Byte-Sequenz« beschrieben.

       EINPROGRESS     Aktion wird gerade ausgeführt (POSIX.1-2001)

       EINTR           Unterbrochener Funktionsaufruf (POSIX.1-2001); siehe signal(7)

       EINVAL          Ungültiges Argument (POSIX.1-2001)

       EIO             Ein-/Ausgabefehler (POSIX.1-2001)

       EISCONN         Socket ist verbunden (POSIX.1-2001)

       EISDIR          Ist ein Verzeichnis (POSIX.1-2001)

       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          Stufe 2 angehalten

       EL2NSYNC        Stufe 2 nicht synchronisiert

       EL3HLT          Stufe 3 angehalten

       EL3RST          Stufe 3 zurückgesetzt

       ELIBACC         Zugriff auf notwendige Laufzeitbibliothek nicht möglich

       ELIBBAD         Zugriff auf eine beschädigte Laufzeitbibliothek

       ELIBMAX         Versuch, zu viele Laufzeitbibliotheken zu linken

       ELIBSCN         Abschnitt .lib in a.out defekt

       ELIBEXEC        Eine Laufzeitbibliothek kann nicht direkt ausgeführt werden

       ELNRANGE        Link-Nummer außerhalb des zulässigen Bereichs

       ELOOP           Zu viele Ebenen von symbolischen Links (POSIX.1-2001)

       EMEDIUMTYPE     Falscher Medientyp

       EMFILE          Zu  viele  offene  Dateien  (POSIX.1-2001). Typischerweise wird dies durch
                       Überschreiten  der  in  getrlimit(2)  beschriebenen   Ressourcenbegrenzung
                       RLIMIT_NOFILE hervorgerufen

       EMLINK          Zu viele Links (POSIX.1-2001)

       EMSGSIZE        Nachricht zu lang (POSIX.1-2001)

       EMULTIHOP       Multihop (mehrere Etappen) versucht (POSIX.1-2001)

       ENAMETOOLONG    Dateiname zu lang (POSIX.1-2001)

       ENETDOWN        Netzwerk außer Betrieb (POSIX.1-2001)

       ENETRESET       Verbindungsabbruch durch das Netzwerk (POSIX.1-2001)

       ENETUNREACH     Netzwerk nicht erreichbar (POSIX.1-2001)

       ENFILE          Zu   viele   offene   Dateien   (POSIX.1-2001).   Unter   Linux  ist  dies
                       wahrscheinlich ein Ergebnis der Beschränkung /proc/sys/fs/file-max  (siehe
                       proc(5)).

       ENOANO          Keine Anode

       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-2001)

       ENODEV          Kein solches Gerät vorhanden (POSIX.1-2001)

       ENOENT          Keine solche Datei oder kein solches Verzeichnis vorhanden (POSIX.1-2001)

                       Typischerweise tritt dieser Fehler auf, wenn der angegebene Pfadname nicht
                       existiert, einer der Komponenten in dem Verzeichnispräfix eines Pfadnamens
                       nicht existiert oder der angegebene Pfadname  ein  hängender  symbolischer
                       Link ist.

       ENOEXEC         Fehler im Format der Programmdatei (POSIX.1-2001)

       ENOKEY          Erforderlicher Schlüssel nicht verfügbar

       ENOLCK          Keine Sperren verfügbar (POSIX.1-2001)

       ENOLINK         Link wurde abgetrennt (POSIX.1-2001)

       ENOMEDIUM       Kein Medium gefunden

       ENOMEM          Nicht genügend Platz/Nicht genügend Hauptspeicher verfügbar (POSIX.1-2001)

       ENOMSG          Keine Nachricht vom gewünschten Typ (POSIX.1-2001)

       ENONET          Machine ist nicht an das Netzwerk angeschlossen

       ENOPKG          Paket nicht installiert

       ENOPROTOOPT     Protokoll nicht verfügbar (POSIX.1-2001)

       ENOSPC          Auf dem Gerät ist kein Speicherplatz mehr verfügbar (POSIX.1-2001)

       ENOSR           Keine STREAM-Ressourcen (POSIX.1 (Option XSI STREAMS))

       ENOSTR          Ist kein STREAM (POSIX.1 (XSI-STREAMS-Option))

       ENOSYS          Funktion nicht implementiert (POSIX.1-2001)

       ENOTBLK         Blockgerät erforderlich

       ENOTCONN        Der Socket ist nicht verbunden (POSIX.1-2001)

       ENOTDIR         Ist kein Verzeichnis (POSIX.1-2001)

       ENOTEMPTY       Das Verzeichnis ist nicht leer (POSIX.1-2001)

       ENOTRECOVERABLE Zustand nicht wiederherstellbar (POSIX.1-2008)

       ENOTSOCK        Ist kein Socket (POSIX.1-2001)

       ENOTSUP         Aktion wird nicht unterstützt (POSIX.1-2001)

       ENOTTY          Unpassende E/A-Steuerungsaktion (POSIX.1-2001)

       ENOTUNIQ        Name ist im Netzwerk nicht eindeutig

       ENXIO           Kein solches Gerät/Adresse (POSIX.1-2001)

       EOPNOTSUPP      Aktion für Sockets nicht unterstützt (POSIX.1-2001)

                       (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-2001)

       EOWNERDEAD      Eigentümer verstarb (POSIX.1-2008)

       EPERM           Aktion nicht gestattet (POSIX.1-2001)

       EPFNOSUPPORT    Protokollfamilie nicht unterstützt

       EPIPE           Pipe unterbrochen (POSIX.1-2001)

       EPROTO          Protokollfehler (POSIX.1-2001)

       EPROTONOSUPPORT Protokoll nicht unterstützt (POSIX.1-2001)

       EPROTOTYPE      Falscher Protokolltyp für Socket (POSIX.1-2001)

       ERANGE          Ergebnis zu groß (POSIX.1, C99)

       EREMCHG         Adresse in der Ferne geändert

       EREMOTE         Objekt ist in der Ferne/nicht lokal

       EREMOTEIO       E/A-Fehler in der Ferne

       ERESTART        Unterbrochener Systemaufruf sollte erneut gestart werden

       ERFKILL         Aktion aufgrund von RF-Kill nicht möglich

       EROFS           Nur-lesbares Dateisystem (POSIX.1-2001)

       ESHUTDOWN       Senden nach Herunterfahren des Transport-Endpunktes nicht möglich

       ESPIPE          Ungültiger Seek (POSIX.1-2001)

       ESOCKTNOSUPPORT Socket-Typ nicht unterstützt

       ESRCH           Kein solcher Prozess vorhanden (POSIX.1-2001)

       ESTALE          Veraltete Dateizugriffsnummer (file handle) (POSIX.1-2001)

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

       ESTRPIPE        Stream-Pipe-Fehler

       ETIME           Timer abgelaufen (POSIX.1 (XSI-STREAMS-Option))

                       (POSIX.1 nennt das »STREAM ioctl(2)-Zeitüberschreitung«)

       ETIMEDOUT       Verbindung ist abgelaufen (POSIX.1-2001)

       ETOOMANYREFS    Zu viele Referenzen: Zusammenfügen nicht möglich

       ETXTBSY         Textdatei belegt (POSIX.1-2001)

       EUCLEAN         Struktur muss aufgeräumt werden

       EUNATCH         Kein zugeordneter Treiber für Protokoll

       EUSERS          Zu viele Benutzer

       EWOULDBLOCK     Aktion  würden  blockieren  (kann  der  gleiche  Wert  wie  EAGAIN   sein)
                       (POSIX.1-2001)

       EXDEV           Ungültiger Link (POSIX.1-2001)

       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 == ...) { ... }
           }

       Bei  einigen  Uraltsystemen war <errno.h> nicht vorhanden oder deklarierte errno nicht, so
       dass eine manuelle Deklaration von errno notwendig war (d.h. extern int errno). Machen Sie
       das  nicht.  Das  ist  schon  seit  langer Zeit nicht mehr notwendig und wird bei modernen
       Versionen der C-Bibliothek zu Problemen führen.

SIEHE AUCH

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

KOLOPHON

       Diese Seite  ist  Teil  der  Veröffentlichung  5.02  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 https://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

       Die deutsche Übersetzung dieser Handbuchseite wurde von FIXME: Mit errno  -l  syncen  (mit
       Übersetzer   abstimmen),   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>.

                                           6. März 2019                                  ERRNO(3)