Provided by: manpages-de-dev_1.4-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)

       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)

                       (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           Read-only filesystem (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)

                       This error can occur for NFS and for other filesystems

       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

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

KOLOPHON

       This page is part of release 3.54 of the Linux man-pages project.  A  description  of  the  project,  and
       information about reporting bugs, can be found at http://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

       Die deutsche Übersetzung dieser Handbuchseite wurde von Martin Eberhard Schauer <Martin.E.Schauer@gmx.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>.

                                                  9. Juli 2008                                          ERRNO(3)