EBADFEBADF — Ungültiger Dateideskriptor
Ein Dateideskriptor-Argument ist kein gültiger offener Dateideskriptor oder ist nicht für die angeforderte Operation geöffnet.
Was verursacht diesen Fehler
Das Programm versuchte, einen Dateideskriptor zu verwenden, der nie geöffnet wurde, bereits geschlossen wurde oder nicht im richtigen Modus geöffnet ist. Häufige Ursachen sind das doppelte Schließen eines Dateideskriptors oder die Verwendung nach einem fehlgeschlagenen open()-Aufruf.
So beheben Sie ihn
Stellen Sie sicher, dass Dateideskriptoren vor der Verwendung gültig sind. Prüfen Sie den Rückgabewert von open()- und socket()-Aufrufen. Vermeiden Sie die Verwendung eines Dateideskriptors nach dem Aufruf von close(). Verwenden Sie strace, um Dateideskriptor-Operationen zu verfolgen.
Verwandte Fehlercodes
SIGTTIN (21)SIGTTIN (21) — Hintergrundprozess liest vom Terminal
Ein Hintergrundprozess hat versucht, von seinem steuernden Terminal zu lesen.
SIGILL (4)SIGILL (4) — Unzulässige Instruktion
Der Prozess hat versucht, eine unzulässige, fehlerhafte oder privilegierte Maschineninstruktion auszuführen.
EPIPEEPIPE — Unterbrochene Pipe
Es wurde versucht, in eine Pipe oder einen Socket zu schreiben, dessen Leseende geschlossen wurde.
EFAULTEFAULT — Ungültige Adresse
Eine ungültige Speicheradresse wurde als Argument an einen Systemaufruf übergeben.
SIGURG (23)SIGURG (23) — Dringende Socket-Bedingung
Dringende oder Out-of-Band-Daten sind an einem Socket eingegangen.
EMFILEEMFILE — Zu viele geöffnete Dateien
Das prozessspezifische Limit für die Anzahl offener Dateideskriptoren wurde erreicht.