.\" -*- coding: UTF-8 -*-
.\" Copyright (c) 1996 Andries Brouwer (aeb@cwi.nl)
.\"
.\" %%%LICENSE_START(GPLv2+_DOC_FULL)
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
.\"
.\" The GNU General Public License's references to "object code"
.\" and "executables" are to be interpreted as the output of any
.\" document formatting or typesetting system, including
.\" intermediate and printed output.
.\"
.\" This manual is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public
.\" License along with this manual; if not, see
.\" .
.\" %%%LICENSE_END
.\"
.\" 5 Oct 2002, Modified by Michael Kerrisk
.\" Updated for POSIX.1 2001
.\" 2004-12-17 Martin Schulze , mtk
.\" Removed errno declaration prototype, added notes
.\" 2006-02-09 Kurt Wall, mtk
.\" Added non-POSIX errors
.\"
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.TH ERRNO 3 "10. Oktober 2019" "" Linux\-Programmierhandbuch
.SH BEZEICHNUNG
errno \- Nummer des letzten aufgetretenen Fehlers
.SH ÜBERSICHT
.\".PP
.\".BI "extern int " errno ;
\fB#include \fP
.SH BESCHREIBUNG
.\"
Die Header\-Datei \fI\fP definiert die Variable \fIerrno\fP mit
Typ integer. Sie wird von Systemaufrufen (und einigen
Bibliotheksfunktionen) gesetzt, um anzuzeigen, was schief gelaufen ist.
.SS errno
Der Wert in \fIerrno\fP 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 \fIdarf\fP den Wert von \fIerrno\fP ändern. Der
Wert von \fIerrno\fP wird niemals von irgendeinem Systemaufruf oder einer
Bibliotheksfunktion auf Null gesetzt.
.PP
Für einige Systemaufrufe und Bibliotheksfunktionen (wie
z.B. \fBgetpriority\fP(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 \fIerrno\fP auf Null gesetzt wird und wenn der Rückgabestatus einen
Fehler anzeigt, \fIerrno\fP untersucht wird.
.PP
.\"
Der ISO\-C\-Standard definiert \fIerrno\fP als veränderbaren lvalue des Typs
\fIint\fP, der nicht explizit deklariert sein muss; \fIerrno\fP darf ein Makro
sein. Jeder Thread erhält eine eigene, lokale \fBerrno\fP; wird sie in einem
Thread gesetzt, wirkt sich das nicht auf ihren Wert in anderen Threads aus.
.SS "Fehlernummern und \-namen"
Gültige Fehlernummer sind alle positiven Zahlen. Die Header\-Datei
\fI\fP definiert für jeden der möglichen Fehlernummern, die in
\fIerrno\fP auftreten können, symbolische Namen.
.PP
Mit einer Ausnahme müssen alle von POSIX.1 beschriebenen Fehlernamen
unterschiedliche Werte haben. \fBEAGAIN\fP und \fBEWOULDBLOCK\fP dürfen gleich
sein. Unter Linux haben diese beiden Variablen auf allen Architekturen den
gleichen Wert.
.PP
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 \fBperror\fP(3) und \fBstrerror\fP(3)
können dazu verwandt werden, diese Namen in die entsprechenden textuellen
Fehlermeldungen umzuwandeln.
.PP
Auf einem konkreten Linux\-System kann die Liste aller symbolischen
Fehlernamen und der entsprechenden Fehlernummern mittels des Befehls
\fBerrno\fP(1) (Teil des Pakets \fImoreutils\fP) erhalten werden:
.PP
.in +4n
.EX
$ \fBerrno \-l\fP
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
…
.EE
.in
.PP
Der Befehl \fBerrno\fP(1) kann auch zum Nachschlagen einzelner Fehlernummern
und \-namen und der Suche nach Zeichenketten aus den Fehlerbeschreibungen wie
in dem nachfolgenden Beispiel verwandt werden:
.PP
.in +4n
.EX
$ \fBerrno 2\fP
ENOENT 2 Datei oder Verzeichnis nicht gefunden
$ \fBerrno ESRCH\fP
ESRCH 3 Kein passender Prozess gefunden
$ \fBerrno \-s Berechtigung\fP
EACCES 13 Keine Berechtigung
.EE
.in
.PP
.\" POSIX.1 (2001 edition) lists the following symbolic error names. Of
.\" these, \fBEDOM\fP and \fBERANGE\fP are in the ISO C standard. ISO C
.\" Amendment 1 defines the additional error number \fBEILSEQ\fP for
.\" coding errors in multibyte or wide characters.
.\"
.SS "Liste der Fehlernamen"
In der nachfolgenden Liste der symbolischen Fehlernamen sind verschiedene
Namen wie folgt gekennzeichnet:
.IP * 3
\fIPOSIX.1\-2001\fP: Der Name ist durch POSIX.1\-2001 definiert und wird in
neueren POSIX.1\-Versionen definiert, außer es ist anderweitig angegeben.
.IP *
\fIPOSIX.1\-2008\fP: Der Name ist in POSIX.1\-2008 definiert, war aber nicht in
älteren POSIX.1\-Standards verfügbar.
.IP *
\fIC99\fP: Der Name ist durch C99 definiert. Es folgt eine Liste von
symbolischen Fehlernamen, die unter Linux definiert sind:
.TP 16
\fBE2BIG\fP
Argumentliste zu lang (POSIX.1\-2001)
.TP
\fBEACCES\fP
Keine Berechtigung (POSIX.1\-2001)
.TP
\fBEADDRINUSE\fP
Adresse schon in Gebrauch (POSIX.1\-2001)
.TP
\fBEADDRNOTAVAIL\fP
.\" EADV is only an error on HURD(?)
Adresse nicht verfügbar (POSIX.1\-2001)
.TP
\fBEAFNOSUPPORT\fP
Adressfamilie nicht unterstützt (POSIX.1\-2001)
.TP
\fBEAGAIN\fP
Ressource zeitweise nicht verfügbar (darf der gleiche Wert wie
\fBEWOULDBLOCK\fP sein, POSIX.1\-2001)
.TP
\fBEALREADY\fP
Verbindung ist schon aufgebaut (POSIX.1\-2001)
.TP
\fBEBADE\fP
Austausch ungültig
.TP
\fBEBADF\fP
Schlechter Dateideskriptor (POSIX.1\-2001)
.TP
\fBEBADFD\fP
Dateideskriptor in schlechtem Zustand
.TP
\fBEBADMSG\fP
Ungültige Nachricht (POSIX.1\-2001)
.TP
\fBEBADR\fP
Ungültiger Anforderungsdeskriptor
.TP
\fBEBADRQC\fP
Ungültiger Anforderungscode
.TP
\fBEBADSLT\fP
.\" EBFONT is defined but appears not to be used by kernel or glibc.
Ungültiger Slot
.TP
\fBEBUSY\fP
Gerät oder Ressource beschäftigt/belegt (POSIX.1\-2001)
.TP
\fBECANCELED\fP
Aktion abgebrochen (POSIX.1\-2001)
.TP
\fBECHILD\fP
Keine Kindprozesse (POSIX.1\-2001)
.TP
\fBECHRNG\fP
Kanalnummer außerhalb des zulässigen Bereichs
.TP
\fBECOMM\fP
Kommunikationsfehler beim Senden
.TP
\fBECONNABORTED\fP
Verbindung abgebrochen (POSIX.1\-2001)
.TP
\fBECONNREFUSED\fP
Verbindung abgelehnt (POSIX.1\-2001)
.TP
\fBECONNRESET\fP
Verbindung zurückgesetzt (POSIX.1\-2001)
.TP
\fBEDEADLK\fP
Verklemmung beim Zugriff auf eine Resource (deadlock) vermieden
(POSIX.1\-2001)
.TP
\fBEDEADLOCK\fP
Auf den meisten Architekturen ein Synonym für \fBEDEADLK\fP. Auf einigen
Architekturen (zum Beispiel Linux MIPS, PowerPC, SPARC) ist es ein separater
Fehlercode »Verklemmungsfehler bei Dateisperrung«.
.TP
\fBEDESTADDRREQ\fP
Zieladresse erforderlich (POSIX.1\-2001)
.TP
\fBEDOM\fP
.\" EDOTDOT is defined but appears to be unused
Argument einer mathematischen Funktion außerhalb des Definitionsbereichs
(POSIX.1, C99)
.TP
\fBEDQUOT\fP
.\" POSIX just says "Reserved"
Festplattenkontingent (disk quota) überschritten (POSIX.1\-2001)
.TP
\fBEEXIST\fP
Datei schon vorhanden (POSIX.1\-2001)
.TP
\fBEFAULT\fP
Ungültige Adresse (POSIX.1\-2001)
.TP
\fBEFBIG\fP
Datei zu groß (POSIX.1\-2001)
.TP
\fBEHOSTDOWN\fP
Host/Rechner ist nicht in Betrieb
.TP
\fBEHOSTUNREACH\fP
Host/Rechner nicht erreichbar (POSIX.1\-2001)
.TP
\fBEHWPOISON\fP
Speicherseite hat einen Hardware\-Fehler
.TP
\fBEIDRM\fP
Identifier/Bezeichner/Kennung entfernt (POSIX.1\-2001)
.TP
\fBEILSEQ\fP
Ungültiger oder unvollständiger Multibyte oder weites Zeichen (POSIX.1, C99)
.IP
Der hier gezeigte Text ist eine Glibc\-Fehlerbeschreibung: in POSIX.1 wird
dieser Fehler als »Ungültige Byte\-Sequenz« beschrieben.
.TP
\fBEINPROGRESS\fP
Aktion wird gerade ausgeführt (POSIX.1\-2001)
.TP
\fBEINTR\fP
Unterbrochener Funktionsaufruf (POSIX.1\-2001); siehe \fBsignal\fP(7)
.TP
\fBEINVAL\fP
Ungültiges Argument (POSIX.1\-2001)
.TP
\fBEIO\fP
Ein\-/Ausgabefehler (POSIX.1\-2001)
.TP
\fBEISCONN\fP
Socket ist verbunden (POSIX.1\-2001)
.TP
\fBEISDIR\fP
Ist ein Verzeichnis (POSIX.1\-2001)
.TP
\fBEISNAM\fP
Ist eine Datei benannten Typs
.TP
\fBEKEYEXPIRED\fP
Schlüssel ist abgelaufen
.TP
\fBEKEYREJECTED\fP
Schlüssel wurde vom Dienst zurückgewiesen
.TP
\fBEKEYREVOKED\fP
Schlüssel wurde widerrufen
.TP
\fBEL2HLT\fP
Stufe 2 angehalten
.TP
\fBEL2NSYNC\fP
Stufe 2 nicht synchronisiert
.TP
\fBEL3HLT\fP
Stufe 3 angehalten
.TP
\fBEL3RST\fP
Stufe 3 zurückgesetzt
.TP
\fBELIBACC\fP
Zugriff auf notwendige dynamische Bibliothek nicht möglich
.TP
\fBELIBBAD\fP
Zugriff auf eine beschädigte dynamische Bibliothek
.TP
\fBELIBMAX\fP
Versuch, zu viele dynamische Bibliotheken zu linken
.TP
\fBELIBSCN\fP
Abschnitt \&.lib in a.out defekt
.TP
\fBELIBEXEC\fP
Eine dynamische Bibliothek kann nicht direkt ausgeführt werden
.TP
\fBELNRANGE\fP
.\" ELNRNG appears to be used by a few drivers
Link\-Nummer außerhalb des zulässigen Bereichs
.TP
\fBELOOP\fP
Zu viele Ebenen von symbolischen Links (POSIX.1\-2001)
.TP
\fBEMEDIUMTYPE\fP
Falscher Medientyp
.TP
\fBEMFILE\fP
Zu viele offene Dateien (POSIX.1\-2001). Typischerweise wird dies durch
Überschreiten der in \fBgetrlimit\fP(2) beschriebenen Ressourcenbegrenzung
\fBRLIMIT_NOFILE\fP hervorgerufen
.TP
\fBEMLINK\fP
Zu viele Links (POSIX.1\-2001)
.TP
\fBEMSGSIZE\fP
Nachricht zu lang (POSIX.1\-2001)
.TP
\fBEMULTIHOP\fP
.\" POSIX says "Reserved"
Multihop (mehrere Etappen) versucht (POSIX.1\-2001)
.TP
\fBENAMETOOLONG\fP
.\" ENAVAIL is defined, but appears not to be used
Dateiname zu lang (POSIX.1\-2001)
.TP
\fBENETDOWN\fP
Netzwerk außer Betrieb (POSIX.1\-2001)
.TP
\fBENETRESET\fP
Verbindungsabbruch durch das Netzwerk (POSIX.1\-2001)
.TP
\fBENETUNREACH\fP
Netzwerk nicht erreichbar (POSIX.1\-2001)
.TP
\fBENFILE\fP
Zu viele offene Dateien (POSIX.1\-2001). Unter Linux ist dies wahrscheinlich
ein Ergebnis der Beschränkung \fI/proc/sys/fs/file\-max\fP (siehe \fBproc\fP(5)).
.TP
\fBENOANO\fP
.\" ENOANO appears to be used by a few drivers
Keine Anode
.TP
\fBENOBUFS\fP
.\" ENOCSI is defined but appears to be unused.
Kein Platz für Puffer verfügbar (POSIX.1 (XSI\-STREAMS\-Option))
.TP
\fBENODATA\fP
Im STREAM\-Head der Lese\-Warteschlange ist keine Nachricht verfügbar
(POSIX.1\-2001)
.TP
\fBENODEV\fP
Kein solches Gerät vorhanden (POSIX.1\-2001)
.TP
\fBENOENT\fP
Keine solche Datei oder kein solches Verzeichnis vorhanden (POSIX.1\-2001)
.IP
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.
.TP
\fBENOEXEC\fP
Fehler im Format der Programmdatei (POSIX.1\-2001)
.TP
\fBENOKEY\fP
Erforderlicher Schlüssel nicht verfügbar
.TP
\fBENOLCK\fP
Keine Sperren verfügbar (POSIX.1\-2001)
.TP
\fBENOLINK\fP
.\" POSIX says "Reserved"
Link wurde abgetrennt (POSIX.1\-2001)
.TP
\fBENOMEDIUM\fP
Kein Medium gefunden
.TP
\fBENOMEM\fP
Nicht genügend Platz/Nicht genügend Hauptspeicher verfügbar (POSIX.1\-2001)
.TP
\fBENOMSG\fP
Keine Nachricht vom gewünschten Typ (POSIX.1\-2001)
.TP
\fBENONET\fP
Machine ist nicht an das Netzwerk angeschlossen
.TP
\fBENOPKG\fP
Paket nicht installiert
.TP
\fBENOPROTOOPT\fP
Protokoll nicht verfügbar (POSIX.1\-2001)
.TP
\fBENOSPC\fP
Auf dem Gerät ist kein Speicherplatz mehr verfügbar (POSIX.1\-2001)
.TP
\fBENOSR\fP
Keine STREAM\-Ressourcen (POSIX.1 (Option XSI STREAMS))
.TP
\fBENOSTR\fP
Ist kein STREAM (POSIX.1 (XSI\-STREAMS\-Option))
.TP
\fBENOSYS\fP
Funktion nicht implementiert (POSIX.1\-2001)
.TP
\fBENOTBLK\fP
Blockgerät erforderlich
.TP
\fBENOTCONN\fP
Der Socket ist nicht verbunden (POSIX.1\-2001)
.TP
\fBENOTDIR\fP
Ist kein Verzeichnis (POSIX.1\-2001)
.TP
\fBENOTEMPTY\fP
.\" ENOTNAM is defined but appears to be unused.
Das Verzeichnis ist nicht leer (POSIX.1\-2001)
.TP
\fBENOTRECOVERABLE\fP
Zustand nicht wiederherstellbar (POSIX.1\-2008)
.TP
\fBENOTSOCK\fP
Ist kein Socket (POSIX.1\-2001)
.TP
\fBENOTSUP\fP
Aktion wird nicht unterstützt (POSIX.1\-2001)
.TP
\fBENOTTY\fP
Unpassende E/A\-Steuerungsaktion (POSIX.1\-2001)
.TP
\fBENOTUNIQ\fP
Name ist im Netzwerk nicht eindeutig
.TP
\fBENXIO\fP
Kein solches Gerät/Adresse (POSIX.1\-2001)
.TP
\fBEOPNOTSUPP\fP
Aktion für Sockets nicht unterstützt (POSIX.1\-2001)
.IP
(\fBENOTSUP\fP und \fBEOPNOTSUPP\fP haben auf Linux den gleichen Wert, gemäß
POSIX.1 sollten diese Fehlerwerte unterschiedlich sein.)
.TP
\fBEOVERFLOW\fP
Wert zu groß für Speicherung im Datentyp (POSIX.1\-2001)
.TP
\fBEOWNERDEAD\fP
.\" Used at least by the user-space side of rubost mutexes
Eigentümer verstarb (POSIX.1\-2008)
.TP
\fBEPERM\fP
Aktion nicht gestattet (POSIX.1\-2001)
.TP
\fBEPFNOSUPPORT\fP
Protokollfamilie nicht unterstützt
.TP
\fBEPIPE\fP
Pipe unterbrochen (POSIX.1\-2001)
.TP
\fBEPROTO\fP
Protokollfehler (POSIX.1\-2001)
.TP
\fBEPROTONOSUPPORT\fP
Protokoll nicht unterstützt (POSIX.1\-2001)
.TP
\fBEPROTOTYPE\fP
Falscher Protokolltyp für Socket (POSIX.1\-2001)
.TP
\fBERANGE\fP
Ergebnis zu groß (POSIX.1, C99)
.TP
\fBEREMCHG\fP
Adresse in der Ferne geändert
.TP
\fBEREMOTE\fP
Objekt ist in der Ferne/nicht lokal
.TP
\fBEREMOTEIO\fP
E/A\-Fehler in der Ferne
.TP
\fBERESTART\fP
Unterbrochener Systemaufruf sollte erneut gestart werden
.TP
\fBERFKILL\fP
.\" ERFKILL appears to be used by various drivers
Aktion aufgrund von RF\-Kill nicht möglich
.TP
\fBEROFS\fP
Nur\-lesbares Dateisystem (POSIX.1\-2001)
.TP
\fBESHUTDOWN\fP
Senden nach Herunterfahren des Transport\-Endpunktes nicht möglich
.TP
\fBESPIPE\fP
Ungültiger Seek (POSIX.1\-2001)
.TP
\fBESOCKTNOSUPPORT\fP
Socket\-Typ nicht unterstützt
.TP
\fBESRCH\fP
.\" ESRMNT is defined but appears not to be used
Kein solcher Prozess vorhanden (POSIX.1\-2001)
.TP
\fBESTALE\fP
Veraltete Dateizugriffsnummer (file handle) (POSIX.1\-2001)
.IP
Dieser Fehler kann für NFS\- und für andere Dateisysteme auftreten.
.TP
\fBESTRPIPE\fP
Stream\-Pipe\-Fehler
.TP
\fBETIME\fP
Timer abgelaufen (POSIX.1 (XSI\-STREAMS\-Option))
.IP
(POSIX.1 nennt das »STREAM \fBioctl\fP(2)\-Zeitüberschreitung«)
.TP
\fBETIMEDOUT\fP
Verbindung ist abgelaufen (POSIX.1\-2001)
.TP
\fBETOOMANYREFS\fP
.\" ETOOMANYREFS seems to be used in net/unix/af_unix.c
Zu viele Referenzen: Zusammenfügen nicht möglich
.TP
\fBETXTBSY\fP
Textdatei belegt (POSIX.1\-2001)
.TP
\fBEUCLEAN\fP
Struktur muss aufgeräumt werden
.TP
\fBEUNATCH\fP
Kein zugeordneter Treiber für Protokoll
.TP
\fBEUSERS\fP
Zu viele Benutzer
.TP
\fBEWOULDBLOCK\fP
Aktion würden blockieren (kann der gleiche Wert wie \fBEAGAIN\fP sein)
(POSIX.1\-2001)
.TP
\fBEXDEV\fP
Ungültiger Link (POSIX.1\-2001)
.TP
\fBEXFULL\fP
Austausch/Vermittlungsstelle voll
.SH ANMERKUNGEN
Ein verbreiteter Programmierfehler ist
.PP
.in +4n
.EX
if (somecall() == \-1) {
printf("somecall() fehlgeschlagen\en");
if (errno == …) { … }
}
.EE
.in
.PP
Hier muss \fIerrno\fP nicht mehr den Wert haben, den er bei der Rückkehr
aus\fIsomecall\fP() hatte. (D.h., der Wert konnte durch den Aufruf von
\fBprintf\fP(3) verändert werden). Wenn der Wert von \fIerrno\fP über einen
Bibliotheksaufruf erhalten bleiben soll, muss er gespeichert werden:
.PP
.in +4n
.EX
if (somecall() == \-1) {
int errsv = errno;
printf("somecall() fehlgeschlagen\en");
if (errsv == ...) { ... }
}
.EE
.in
.PP
Bei einigen Uraltsystemen war \fI\fP nicht vorhanden oder
deklarierte \fIerrno\fP nicht, so dass eine manuelle Deklaration von \fIerrno\fP
notwendig war (d.h. \fIextern int errno\fP). \fBMachen Sie das nicht\fP. Das ist
schon seit langer Zeit nicht mehr notwendig und wird bei modernen Versionen
der C\-Bibliothek zu Problemen führen.
.SH "SIEHE AUCH"
.\" In the moreutils package
\fBerrno\fP(1), \fBerr\fP(3), \fBerror\fP(3), \fBperror\fP(3), \fBstrerror\fP(3)
.SH KOLOPHON
Diese Seite ist Teil der Veröffentlichung 5.04 des Projekts
Linux\-\fIman\-pages\fP. 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/.
.SH ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von
Martin Eberhard Schauer ,
Mario Blättermann
und
Helge Kreutzmann
erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die
.UR https://www.gnu.org/licenses/gpl-3.0.html
GNU General Public License Version 3
.UE
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 die
.MT debian-l10n-german@\:lists.\:debian.\:org
Mailingliste der Übersetzer
.ME .