Rechercher une page de manuel
errno
Langue: de
Version: 5. Oktober 2002 (openSuse - 09/10/07)
Section: 3 (Bibliothèques de fonctions)
BEZEICHNUNG
errno - die Nummer des letzten aufgetretenen FehlersÜBERSICHT
#include <errno.h> extern int errno;
BESCHREIBUNG
Die Integer-Variable errno wird von Systemaufrufen (und einigen Bibliotheksfunktionen) gesetzt, um anzuzeigen, was schief gelaufen ist. Ihr Wert ist nur dann von Bedeutung, wenn der Aufruf einen Fehler (normalerweise -1) zurückgegeben hat. Eine Bibliotheksfunktion darf errno ändern, selbst wenn sie erfolgreich verläuft.Ist -1 auch ein gültiger Rückgabewert, muss errno vor dem Aufruf auf 0 gesetzt werden, um eventuelle Fehler entdecken zu können.
Der ISO-C-Standard definiert errno als veränderbaren lvalue des Typs int, der nicht explizit deklariert sein darf; errno kann ein Makro sein. Jeder Thread erhält eine eigene errno; wird sie in einem Thread gesetzt, wirkt sich das nicht auf ihren Wert in anderen Threads aus.
Alle gültigen Fehlernummern sind ungleich 0; keine Bibliotheksfunktion setzt errno auf 0. Alle von POSIX.1 definierten Fehlerbezeichnungen müssen voneinander verschiedene Werte besitzen.
POSIX.1 enthält (in der Ausgabe von 2001) die nachfolgende Liste symbolischer Fehlerbezeichnungen. Im ISO-C-Standard sind davon EDOM und ERANGE vorgesehen. Der ISO-C Zusatz 1 definiert zusätzlich die Fehlernummer EILSEQ für Kodierungsfehler bei Multi-Byte- oder Wide-Zeichen.
- E2BIG
- Die Argumentenliste zu lang
- EACCES
- Keine Berechtigung
- EADDRNOTAVAIL
- Adresse nicht verfügbar
- EAFNOSUPPORT
- Adressfamilie nicht unterstützt
- EAGAIN
- Ressource zurzeit nicht verfügbar
- EALREADY
- Verbindung bereits in Bearbeitung
- EBADF
- Ungültiger Dateideskriptor
- EBADMSG
- Ungültige Nachricht
- EBUSY
- Gerät oder Ressource belegt
- ECANCELED
- Operation abgebrochen
- ECHILD
- Keine Kind-Prozesse
- ECONNREFUSED
- Verbindung abgelehnt
- ECONNRESET
- Verbindung zurückgesetzt
- EDEADLK
- Verklemmung beim Zugriff auf eine Ressource vermieden
- EDESTADDRREQ
- Zieladresse erwartet
- EDOM
- Domain-Fehler
- EDQUOT
- reserviert
- EEXIST
- Datei existiert bereits
- EFAULT
- Ungültige Adresse
- EFBIG
- Datei zu groß
- EINPROGRESS
- Operation in Bearbeitung
- EINTR
- Unterbrechung während des Betriebssystemaufrufs
- EINVAL
- Argument ungültig
- EIO
- Eingabe-/Ausgabefehler
- EISCONN
- Socket ist verbunden
- EISDIR
- Ist ein Verzeichnis
- ELOOP
- Zuviele Stufen symbolischer Links
- EMFILE
- Zu viele offene Dateien
- EMLINK
- Zu viele Links
- EMSGSIZE
- nicht ausreichend großer Puffer
- EMULTIHOP
- reserviert
- ENAMETOOLONG
- Dateiname zu lang
- ENETDOWN
- Netzwerk ist unten
- ENETRESET
- Verbindung durch Netzwerk abgebrochen
- ENETUNREACH
- Netzwerk unerreichbar
- ENFILE
- Zu viele offene Dateien im System
- ENOBUFS
- Kein Pufferspeicher verfügbar
- ENODATA
- Keine Nachricht verfügbar in der Lese-Warteschlange im STREAM-Kopf
- ENODEV
- Die Operation wird von diesem Gerät nicht unterstützt
- ENOENT
- Datei oder Verzeichnis nicht gefunden
- ENOEXEC
- Fehler im Format der Programmdatei
- ENOLCK
- Keine Sperren verfügbar
- ENOLINK
- reserviert
- ENOMEM
- Nicht genügend Hauptspeicher verfügbar
- ENOMSG
- keine Nachricht des erwarteten Typs
- ENOPROTOOPT
- Protokoll nicht verfügbar
- ENOSPC
- kein Speicherplatz auf dem Gerät verfügbar
- ENOSR
- keine STREAM-Ressourcen
- ENOSTR
- kein STREAM
- ENOSYS
- Die angeforderte Funktion ist nicht implementiert
- ENOTCONN
- Socket nicht verbunden
- ENOTDIR
- Ist kein Verzeichnis
- ENOTEMPTY
- Das Verzeichnis ist nicht leer
- ENOTSOCK
- kein Socket
- ENOTSUP
- Die Operation wird nicht unterstützt
- ENOTTY
- Unpassender IOCTL (I/O-Control) für das Gerät
- ENXIO
- Das Gerät ist nicht konfiguriert
- EOPNOTSUPP
- Operation nicht unterstützt auf diesem Socket
- EOVERFLOW
- Wert zu lang, um im Datentyp gespeichert werden zu können
- EPERM
- Die Operation ist nicht erlaubt
- EPIPE
- Datenübergabe unterbrochen (broken pipe)
- EPROTO
- Protokoll-Fehler
- EPROTONOSUPPORT
- Protokoll nicht unterstützt
- EPROTOTYPE
- falscher Protokolltyp für Socket
- ERANGE
- Das numerische Ergebnis ist außerhalb des gültigen Bereiches
- EROFS
- Das Dateisystem ist nur lesbar
- ESPIPE
- Nicht erlaubter Seek
- ESRCH
- Kein passender Prozess gefunden
- ESTALE
- reserviert
- ETIME
- Timeout im STREAM-ioctl()
- ETIMEDOUT
- Die Wartezeit für die Verbindung ist abgelaufen
- ETXTBSY
- Textdatei kann nicht ausgeführt werden, weil sie noch zum Schreiben geöffnet ist.
- EWOULDBLOCK
- Operation würde blockieren (kann der gleiche Wert wie EAGAIN sein)
- EXDEV
- Ungültiger Link über Gerätegrenzen hinweg
ANMERKUNG
Ein beliebter Fehler ist-
if (somecall() == -1) { printf("somecall() failed\n"); if (errno == ...) { ... } }
-
if (somecall() == -1) { int errsv = errno; printf("somecall() failed\n"); if (errsv == ...) { ... } }
SIEHE AUCH
perror(3), strerror(3).14:34 14.32 Bah c'est WinMeuhMeuh! Je l'ai installé , il s'installe tres
bien! C'est apres que ca merde... Ceci dit il s'installe tres
bien... En plus j'ai eu le droit de l'installer plusieur fois! Et
ben il s'installe tres bien!
Contenus ©2006-2010 Benjamin Poulain
Design ©2006-2010 Maxime Vantorre