.\"
.\" Translated into german by Christoph Seibert <seibert@cs.uni-bonn.de>
.\"
-.TH ERRNO 3 "16. März 1999" "" "Bibliotheksfunktionen"
+.\" sync: man-pages 1.70
+.\"
+.TH ERRNO 3 "5. Oktober 2002" "" "Bibliotheksfunktionen"
.SH BEZEICHNUNG
errno \- die Nummer des letzten aufgetretenen Fehlers
.SH "ÜBERSICHT"
auf 0. Alle von POSIX.1 definierten Fehlerbezeichnungen müssen
voneinander verschiedene Werte besitzen.
-POSIX.1 enthält (in der Ausgabe von 1996) die nachfolgende Liste
+POSIX.1 enthält (in der Ausgabe von 2001) die nachfolgende Liste
symbolischer Fehlerbezeichnungen. Im ISO-C-Standard sind davon
.B EDOM
und
.B ERANGE
vorgesehen. Der ISO-C Zusatz 1 definiert zusätzlich die Fehlernummer
.B EILSEQ
-(Ungültiges oder unvollständiges Multi-Byte oder Wide-Zeichen).
+für Kodierungsfehler bei Multi-Byte- oder Wide-Zeichen.
.TP
.B E2BIG
-Die Argumentliste ist zu lang
+Die Argumentenliste zu lang
.TP
.B EACCES
Keine Berechtigung
.TP
+.B EADDRNOTAVAIL
+Adresse nicht verfügbar
+.TP
+.B EAFNOSUPPORT
+Adreßfamilie nicht unterstützt
+.TP
.B EAGAIN
-Die Resource ist zurzeit nicht verfügbar
+Die Resource zur Zeit nicht verfügbar
+.TP
+.B EALREADY
+Verbindung bereits in Bearbeitung
.TP
.B EBADF
Ungültiger Dateideskriptor
Ungültige Nachricht
.TP
.B EBUSY
-Das Gerät oder die Resource ist belegt
+Gerät oder Resource belegt
.TP
.B ECANCELED
Operation abgebrochen
.B ECHILD
Keine Kind-Prozesse
.TP
+.B ECONNREFUSED
+Verbindung abgelehnt
+.TP
+.B ECONNRESET
+Verbindung zurückgesetzt
+.TP
.B EDEADLK
Verklemmung beim Zugriff auf eine Resource vermieden
.TP
+.B EDESTADDRREQ
+Zieladresse erwartet
+.TP
.B EDOM
-Das numerische Argument ist außerhalb des Definitionsbereiches
+Domain-Fehler
+.TP
+.B EDQUOT
+reserviert
.TP
.B EEXIST
-Die Datei existiert bereits
+Datei existiert bereits
.TP
.B EFAULT
Ungültige Adresse
.TP
.B EFBIG
-Die Datei ist zu groß
+Datei zu groß
.TP
.B EINPROGRESS
-Die Operation ist jetzt in Bearbeitung
+Operation in Bearbeitung
.TP
.B EINTR
Unterbrechung während des Betriebssystemaufrufs
.TP
.B EINVAL
-Das Argument ist ungültig
+Argument ungültig
.TP
.B EIO
Eingabe-/Ausgabefehler
.TP
+.B EISCONN
+Socket ist verbunden
+.TP
.B EISDIR
Ist ein Verzeichnis
.TP
+.B ELOOP
+Zuviele Stufen symbolischer Links
+.TP
.B EMFILE
Zu viele offene Dateien
.TP
Zu viele Links
.TP
.B EMSGSIZE
-Die Nachricht ist zu lang
+nicht ausreichend großer Puffer
+.TP
+.B EMULTIHOP
+reserviert
.TP
.B ENAMETOOLONG
-Der Dateiname ist zu lang
+Dateiname zu lang
+.TP
+.B ENETDOWN
+Netzwerk ist unten
+.TP
+.B ENETRESET
+Verbindung durch Netzwerk abgebrochen
+.TP
+.B ENETUNREACH
+Netzwerk unerreichbar
.TP
.B ENFILE
Zu viele offene Dateien im System
.TP
+.B ENOBUFS
+Kein Pufferspeicher verfügbar
+.TP
+.B ENODATA
+Keine Nachricht verfügbar in der Lese-Warteschlange im STREAM-Kopf
+.TP
.B ENODEV
Die Operation wird von diesem Gerät nicht unterstützt
.TP
.B ENOLCK
Keine Sperren verfügbar
.TP
+.B ENOLINK
+reserviert
+.TP
.B ENOMEM
Nicht genügend Hauptspeicher verfügbar
.TP
+.B ENOMSG
+keine Nachricht des erwarteten Typs
+.TP
+.B ENOPROTOOPT
+Protokoll nicht verfügbar
+.TP
.B ENOSPC
-Auf dem Gerät ist kein Speicherplatz mehr verfügbar
+kein Speicherplatz auf dem Gerät verfügbar
+.TP
+.B ENOSR
+keine STREAM-Resourcen
+.TP
+.B ENOSTR
+kein STREAM
.TP
.B ENOSYS
Die angeforderte Funktion ist nicht implementiert
.TP
+.B ENOTCONN
+Socket nicht verbunden
+.TP
.B ENOTDIR
Ist kein Verzeichnis
.TP
.B ENOTEMPTY
Das Verzeichnis ist nicht leer
.TP
+.B ENOTSOCK
+kein Socket
+.TP
.B ENOTSUP
Die Operation wird nicht unterstützt
.TP
.B ENXIO
Das Gerät ist nicht konfiguriert
.TP
+.B EOPNOTSUPP
+Operation nicht unterstützt auf diesem Socket
+.TP
+.B EOVERFLOW
+Wert zu lang, um im Datentyp gespeichert werden zu können
+.TP
.B EPERM
Die Operation ist nicht erlaubt
.TP
.B EPIPE
Datenübergabe unterbrochen (broken pipe)
.TP
+.B EPROTO
+Protokoll-Fehler
+.TP
+.B EPROTONOSUPPORT
+Protokoll nicht unterstützt
+.TP
+.B EPROTOTYPE
+falscher Protokolltyp für Socket
+.TP
.B ERANGE
Das numerische Ergebnis ist außerhalb des gültigen Bereiches
.TP
.B ESRCH
Kein passender Prozeß gefunden
.TP
+.B ESTALE
+reserviert
+.TP
+.B ETIME
+Timeout im STREAM-ioctl()
+.TP
.B ETIMEDOUT
Die Wartezeit für die Verbindung ist abgelaufen
.TP
+.B ETXTBSY
+Textdatei kann nicht ausgeführt werden, weil sie noch zum Schreiben
+geöffnet ist.
+.TP
+.B EWOULDBLOCK
+Operation würde blockieren (kann der gleiche Wert wie EAGAIN sein)
+.TP
.B EXDEV
Ungültiger Link über Gerätegrenzen hinweg
.PP
-Die verschiedenen Unix-Implementierungen geben viele weitere
-Fehlermeldungen zurück. System V gibt
-.B ETXTBSY
-(Das Programm kann nicht ausgeführt oder verändert werden (busy))
-zurück, wenn versucht wird, exec() auf einer Datei aufzurufen, die zum
-Schreiben geöffnet ist. Linux gibt diesen Fehler ebenfalls zurück,
-wenn der Versuch unternommen wird, eine Datei sowohl mit VM_DENYWRITE
-in den Speicher abzubilden als auch zum Schreiben zu öffnen.
+.SH ANMERKUNG
+Ein beliebter Fehler ist
+.RS
+.nf
+if (somecall() == -1) {
+ printf("somecall() failed\en");
+ if (errno == ...) { ... }
+}
+
+.fi
+.RE
+zu schreiben, wobei
+.I errno
+nicht mehr den gleichen Wert beinhalten muß, den sie nach Rückkehr von
+.I somecall()
+gehabt hat. Wenn der Wert von
+.I errno
+über einen Bibliotheksaufruf gesichert werden soll, muß er explizit
+gespeichert werden:
+.RS
+.nf
+
+if (somecall() == -1) {
+ int errsv = errno;
+ printf("somecall() failed\en");
+ if (errsv == ...) { ... }
+}
+.fi
+.RE
.SH "SIEHE AUCH"
.BR perror (3),
.BR strerror (3).