tail head cat sleep
QR code linking to this page

Manpage  — ERRNO

BEZEICHNUNG

errno - die Nummer des letzten aufgetretenen Fehlers

INHALT

Ü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, muß 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 muß; 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 1996) 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 (Ungültiges oder unvollständiges Multi-Byte oder Wide-Zeichen).

E2BIG Die Argumentliste ist zu lang
EACCES Keine Berechtigung
EAGAIN Die Resource ist zurzeit nicht verfügbar
EBADF Ungültiger Dateideskriptor
EBADMSG
  Ungültige Nachricht
EBUSY Das Gerät oder die Resource ist belegt
ECANCELED
  Operation abgebrochen
ECHILD Keine Kind-Prozesse
EDEADLK
  Verklemmung beim Zugriff auf eine Resource vermieden
EDOM Das numerische Argument ist außerhalb des Definitionsbereiches
EEXIST Die Datei existiert bereits
EFAULT Ungültige Adresse
EFBIG Die Datei ist zu groß
EINPROGRESS
  Die Operation ist jetzt in Bearbeitung
EINTR Unterbrechung während des Betriebssystemaufrufs
EINVAL Das Argument ist ungültig
EIO Eingabe-/Ausgabefehler
EISDIR Ist ein Verzeichnis
EMFILE Zu viele offene Dateien
EMLINK Zu viele Links
EMSGSIZE
  Die Nachricht ist zu lang
ENAMETOOLONG
  Der Dateiname ist zu lang
ENFILE Zu viele offene Dateien im System
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
ENOMEM Nicht genügend Hauptspeicher verfügbar
ENOSPC Auf dem Gerät ist kein Speicherplatz mehr verfügbar
ENOSYS Die angeforderte Funktion ist nicht implementiert
ENOTDIR
  Ist kein Verzeichnis
ENOTEMPTY
  Das Verzeichnis ist nicht leer
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
EPERM Die Operation ist nicht erlaubt
EPIPE Datenübergabe unterbrochen (broken pipe)
ERANGE Das numerische Ergebnis ist außerhalb des gültigen Bereiches
EROFS Das Dateisystem ist nur lesbar
ESPIPE Nicht erlaubter Seek
ESRCH Kein passender Prozeß gefunden
ETIMEDOUT
  Die Wartezeit für die Verbindung ist abgelaufen
EXDEV Ungültiger Link über Gerätegrenzen hinweg
Die verschiedenen Unix-Implementierungen geben viele weitere Fehlermeldungen zurück. System V gibt 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.

SIEHE AUCH

perror(3), strerror(3).

16. März 1999 ERRNO (3)

tail head cat sleep
QR code linking to this page


Bitte richten Sie Ihre Kommentare zu diesem Handbuch Seite Service, Ben Bullock. Privacy policy.