Linux-Fehlercodes sind Codes, die angezeigt werden, wenn beim Arbeiten oder Verwenden eines Programms ein Fehler im System auftritt. Mithilfe von Fehlercodes können die Fehler erkannt werden. Die Fehlercodes helfen uns, die Fehlerquelle zu erkennen.
Wenn wir auf einem Linux-System arbeiten, ist es offensichtlich, dass wir auf Fehler stoßen können. Einige Fehler können geringfügig sein und führen möglicherweise nicht zu einer Unterbrechung des Programms. Es können jedoch einige Fehler auftreten, die dazu führen können, dass ein System oder Programm nicht mehr reagiert. Diese Fehler können zu Datenverlust führen oder den Abschluss des Programms verhindern. Meistens werden Fehler in Form von Codes oder Meldungen angezeigt.
In diesem Abschnitt sehen wir Fehler in der C-Programmierung und eine Liste möglicher Fehler in der Linux System.
Linux-Fehler in der C-Programmierung
Ein erfahrener Programmierer sollte wissen, wie er mit den Fehlern umgeht. Die Programmiersprache C bietet keine direkte Unterstützung für die Fehlerbehandlung. Wir müssen die Fehlerquelle erkennen und beheben. In der Sprache C zeigen die Rückgabewerte den Fehler oder Erfolg an. Wenn eine Funktion im C-Programm fehlschlägt, müssen wir den Fehler entsprechend behandeln; Andernfalls werden die Fehler zuletzt in einer Protokolldatei aufgezeichnet.
Während der Ausführung der C-Programme bemerken wir möglicherweise einige Fehlernummern wie „Fehlernummer ist: 17“. Hier bedeutet der Fehler Nr. 17, dass die Datei bereits existiert. Jede Fehlernummer hat eine Bedeutung.
Die C-Sprache unterstützt eine Variable 'Fehlernr .' Durch die Verwendung dieser Fehlernummernvariablen können wir einige Fehlerbehandlungsfunktionen verwenden, um sie ordnungsgemäß zu behandeln.
Um die externe Variable Fehlernummer verwenden zu können, müssen wir eine Header-Datei einbinden 'fehlernr.h.' Die Header-Datei wird verwendet, um die Variable „errno“ zu definieren. Die Variable errno wird von den Systemaufrufen und Bibliotheksfunktionen beim Auftreten eines Fehlers gesetzt. Es gibt zwei wichtige Funktionen im C-Programmiersprache mit Fehlern umgehen; Fehler Und strerror . Die perror-Funktion wird zum Drucken der Fehlerbeschreibung verwendet und die sterror-Funktion gibt eine Zeichenfolge mit dem Fehlercode zurück.
Lassen Sie uns die Liste der Fehlercodes mit errno anzeigen.
Linux-Fehlernummer
Das Dienstprogramm „errno“ wird zum Nachschlagen von Fehlercodes, Makronamen und den entsprechenden Beschreibungen verwendet. Wenn wir beispielsweise ENOENT auf einem Linux-System bereitstellen, werden Code 2 und Beschreibung angezeigt ' Keine solche Datei oder Verzeichnis .' Wenn wir den Code 2 angeben, wird der angezeigt ENOENT und seine Beschreibung .
Wenn das Dienstprogramm „errno“ nicht auf unserem Computer installiert ist, wird der Fehler wie folgt angezeigt:
Um es zu installieren, führen Sie den folgenden Befehl aus:
sudo apt install moreutils
Durch Ausführen des obigen Befehls wird das Paket „moreutils“ auf unserem Computer installiert, das das Dienstprogramm „errno“ enthält.
Zeigen Sie die Liste der Fehlercodes an
Um die Liste der Fehlercodes anzuzeigen, führen Sie den Befehl wie folgt aus:
errno -l
Der obige Befehl zeigt die Liste der Fehlercodes von RedHat an. Betrachten Sie die folgende Ausgabe:
Zeigt die Informationen einer Fehlernummer an
Um die Informationen einer bestimmten Fehlernummer anzuzeigen, führen Sie den Befehl wie folgt aus:
errno 2
Der obige Befehl zeigt die Beschreibung von Fehler Nummer 2 an. Betrachten Sie die folgende Ausgabe:
Zeigt die Informationen eines Fehlernamens an
Um die Informationen zu einem bestimmten Fehlernamen anzuzeigen, führen Sie den Befehl errno gefolgt vom Fehlernamen aus. Beispielsweise um die Informationen eines Fehlernamens anzuzeigen 'ESRCH ,‘ führen Sie den Befehl wie folgt aus:
errno ESRCH
Der obige Befehl zeigt die Informationen zum angegebenen Fehlernamen an. Betrachten Sie die folgende Ausgabe:
Zeigen Sie den Fehler mithilfe von Zeichenfolgen an
Um eine Fehlerbeschreibung mithilfe einer Zeichenfolge aus der Beschreibung anzuzeigen, führen Sie den Befehl wie folgt aus:
errno -s permission
Der obige Befehl zeigt die Fehler an, deren Beschreibung eine Zeichenfolgenberechtigung enthält. Betrachten Sie die folgende Ausgabe:
Liste der Linux-Systemfehler
Im Folgenden finden Sie eine unvollständige Liste möglicher Fehler des Linux-Systems:
Fehlercode | Fehler Nr | Beschreibung |
---|---|---|
Oberer, höher | 1 | Es wird angezeigt, wenn der Vorgang nicht zulässig ist. |
ENOENT | 2 | Es wird angezeigt, wenn keine solche Datei oder kein solches Verzeichnis vorhanden ist. |
ESRCH | 3 | Es wird angezeigt, wenn kein solcher Prozess vorhanden ist. |
EINTR | 4 | Es wird für einen unterbrochenen Systemaufruf angezeigt |
EIO | 5 | Es wird bei Eingabe-/Ausgabefehlern angezeigt. |
ENXIO | 6 | Es wird angezeigt, wenn kein solches Gerät oder keine solche Adresse vorhanden ist. |
E2BIG | 7 | Es wird angezeigt, wenn die Argumentliste zu lang ist. |
ENOEXEC | 8 | Es wird angezeigt, wenn ein Exec-Formatfehler vorliegt |
EBADF | 9 | Es wird angezeigt, wenn der Dateideskriptor fehlerhaft ist. |
ECHILD | 10 | Es wird angezeigt, wenn kein untergeordneter Prozess vorhanden ist. |
WIEDER | elf | Es wird angezeigt, wenn die Ressource vorübergehend nicht verfügbar ist. |
ENOMEM | 12 | Es wird angezeigt, wenn das System keinen Speicher zuweisen kann. |
EACCES | 13 | Es wird angezeigt, wenn die Berechtigung verweigert wird. |
EFAULT | 14 | Es wird angezeigt, wenn eine fehlerhafte Adresse vorliegt. |
ENOTBLK | fünfzehn | Es wird angezeigt, wenn Gerät blockieren erforderlich ist. |
BESCHÄFTIGT | 16 | Es wird angezeigt, wenn das Gerät oder die Ressource ausgelastet ist. |
EEXIST | 17 | Es wird angezeigt, wenn die Datei bereits vorhanden ist. |
EXDEV | 18 | Es wird angezeigt, wenn eine ungültige geräteübergreifende Verknüpfung vorliegt. |
ENODEV | 19 | Es wird angezeigt, wenn kein solches Gerät vorhanden ist. |
ENOTDIR | zwanzig | Es wird angezeigt, wenn kein Verzeichnis vorhanden ist. |
EISDIR | einundzwanzig | Es wird angezeigt, wenn ein Verzeichnis vorhanden ist. |
EINZIGE WAHL | 22 | Es wird angezeigt, wenn ein ungültiges Argument vorliegt. |
AUFSETZEN | 23 | Es wird angezeigt, wenn zu viele offene Dateien im System vorhanden sind. |
TOT | 24 | Es wird angezeigt, wenn zu viele offene Dateien vorhanden sind. |
ENOTTY | 25 | Es wird angezeigt, wenn für das Gerät ein ungeeignetes IOCTL vorhanden ist. |
ETXTBSY | 26 | Es wird angezeigt, wenn die Textdatei belegt ist. |
EFBIG | 27 | Es wird angezeigt, wenn die Datei zu groß ist. |
ENOSPC | 28 | Es wird angezeigt, wenn auf dem Gerät kein Speicherplatz mehr vorhanden ist. |
ESPIPE | 29 | Es wird im Falle einer illegalen Suche angezeigt. |
EROFS | 30 | Es wird im Falle eines schreibgeschützten Dateisystems angezeigt. |
EMLINK | 31 | Es wird angezeigt, wenn zu viele Links vorhanden sind. |
EPIPE | 32 | Wird bei Rohrbruch angezeigt. |
EDOM | 33 | Es wird angezeigt, wenn das numerische Argument außerhalb des Domänenbereichs liegt. |
ERANGE | 3. 4 | Es wird angezeigt, wenn das numerische Ergebnis außerhalb des Bereichs liegt. |
EDEADLK | 35 | Es wird angezeigt, wenn ein Ressourcen-Deadlock vermieden wird. |
ENAMETOOLONG | 36 | Es wird angezeigt, wenn der Dateiname zu lang ist. |
ENOLCK | 37 | Es wird angezeigt, wenn keine Sperren vorhanden sind. |
ENOSYS | 38 | Wird angezeigt, wenn die Funktion nicht implementiert ist. |
ENOTEMPTY | 39 | Es wird angezeigt, wenn das Verzeichnis nicht leer ist. |
ELOOP | 40 | Es wird angezeigt, wenn zu viele Ebenen symbolischer Links vorhanden sind. |
ENOMSG | 42 | Es wird angezeigt, wenn keine Nachricht des gewünschten Typs vorhanden ist. |
EIDRM | 43 | Es wird angezeigt, wenn die Kennung entfernt wird. |
ECHRNG | 44 | Es wird angezeigt, wenn die Kanalnummer außerhalb des zulässigen Bereichs liegt. |
EL2NSYNC | Vier fünf | Es wird angezeigt, wenn Ebene 2 nicht synchronisiert ist. |
EL3HLT | 46 | Es wird angezeigt, wenn Level 3 angehalten wird. |
EL3RST | 47 | Wird angezeigt, wenn Level 3 zurückgesetzt wird. |
ELNRNG | 48 | Es wird angezeigt, wenn die Linknummer außerhalb des gültigen Bereichs liegt. |
EUNATCH | 49 | Es wird angezeigt, wenn kein Protokolltreiber angeschlossen ist. |
ENOCSI | fünfzig | Es wird angezeigt, wenn keine CSI-Struktur verfügbar ist. |
EL2HLT | 51 | Es wird angezeigt, wenn Level 2 angehalten wird. |
ES IST GEWESEN | 52 | Es wird im Falle eines ungültigen Umtauschs angezeigt. |
EBADR | 53 | Es wird im Falle eines ungültigen Anforderungsdeskriptors angezeigt. |
EXVOLL | 54 | Es wird angezeigt, wenn der Austausch voll ist. |
ENOANO | 55 | Wird angezeigt, wenn keine Anode vorhanden ist. |
EBADRQC | 56 | Es wird für einen ungültigen Anforderungscode angezeigt. |
EBADSLT | 57 | Es wird für einen ungültigen Steckplatz angezeigt. |
EBFONT | 59 | Es wird angezeigt, wenn das Schriftartdateiformat fehlerhaft ist. |
EINSEITIG | 60 | Es wird angezeigt, wenn das Gerät kein Stream ist. |
ENODATA | 61 | Es wird angezeigt, wenn keine Daten verfügbar sind. |
E ZEIT | 62 | Es wird angezeigt, wenn der Timer abgelaufen ist. |
ENOSR | 63 | Es wird angezeigt, wenn keine Stream-Ressourcen vorhanden sind. |
ENONET | 64 | Es wird angezeigt, wenn sich das Gerät nicht im Netzwerk befindet. |
ENOPKG | 65 | Es wird angezeigt, wenn das Paket nicht installiert ist. |
EREMOTE | 66 | Es wird angezeigt, wenn das Objekt entfernt ist. |
ENOLINK | 67 | Es wird angezeigt, wenn die Verbindung getrennt wurde. |
EADV | 68 | Es wird ein Werbefehler angezeigt. |
ESRMNT | 69 | Es wird ein Srmount-Fehler angezeigt. |
ECOMM | 70 | Es wird angezeigt, wenn beim Senden ein Kommunikationsfehler vorliegt. |
EPROTO | 71 | Es wird ein Protokollfehler angezeigt. |
EMULTIHOP | 72 | Es wird für Multihop-Versuche angezeigt. |
EDOTDOT | 73 | Es wird für RFS-spezifische Fehler angezeigt. |
EBADMSG | 74 | Es wird für eine fehlerhafte Nachricht angezeigt. |
EOVERFLOW | 75 | Es wird angezeigt, wenn der Wert für den definierten Datentyp zu groß ist. |
ENOTUNIQ | 76 | Es wird angezeigt, wenn der Name im Netzwerk nicht eindeutig ist. |
EBADFD | 77 | Es wird angezeigt, wenn der Dateideskriptor in einem fehlerhaften Zustand ist. |
EREMCHG | 78 | Es wird angezeigt, wenn die Remote-Adresse geändert wird. |
ELIBACC | 79 | Es wird angezeigt, wenn wir nicht auf eine benötigte gemeinsam genutzte Bibliothek zugreifen können. |
ELIBBAD | 80 | Es wird angezeigt, wenn auf eine beschädigte gemeinsam genutzte Bibliothek zugegriffen wird. |
ELIBSCN | 81 | Es wird angezeigt, wenn der .lib-Abschnitt in a.out beschädigt ist. |
ELIBMAX | 82 | Es wird angezeigt, wenn wir versuchen, zu viele gemeinsam genutzte Bibliotheken einzubinden. |
ELIBEXEC | 83 | Es wird angezeigt, wenn wir eine gemeinsam genutzte Bibliothek nicht direkt ausführen können. |
EILSEQ | 84 | Es wird für ein ungültiges oder unvollständiges Multibyte- oder Breitzeichen angezeigt |
ERESTART | 85 | Es wird angezeigt, um Sie darüber zu informieren, dass der unterbrochene Systemaufruf neu gestartet werden sollte. |
ESTRIPPE | 86 | Es wird angezeigt, wenn ein Stream-Pipe-Fehler vorliegt. |
EUSERS | 87 | Es wird zu vielen Benutzern angezeigt. |
ENOTSOCK | 88 | Es wird für den Socket-Betrieb auf einem Nicht-Socket angezeigt. |
EDESTADDRREQ | 89 | Es wird angezeigt, wenn die Zieladresse erforderlich ist. |
EMSGSIZE | 90 | Es wird angezeigt, wenn die Nachricht zu lang ist. |
EPROTOTYP | 91 | Es wird angezeigt, wenn das Protokoll für den Socket den falschen Typ hat. |
ENOPROTOOPT | 92 | Es wird angezeigt, wenn das Protokoll nicht verfügbar ist. |
EPROTONOSUPPORT | 93 | Es wird angezeigt, wenn das Protokoll nicht unterstützt wird. |
ESOCKTNOSUPPORT | 94 | Es wird angezeigt, wenn der Socket-Typ nicht unterstützt wird. |
EOPNOTSUPP | 95 | Es wird angezeigt, wenn der Vorgang nicht unterstützt wird. |
EPFNOSUPPORT | 96 | Es wird angezeigt, wenn die Protokollfamilie nicht unterstützt wird. |
EAFNOSUPPORT | 97 | Es wird angezeigt, wenn die Adressfamilie nicht vom Protokoll unterstützt wird. |
EADDRINUS | 98 | Es wird angezeigt, wenn die Adresse bereits verwendet wird. |
EADDRNOTAVAIL | 99 | Wird angezeigt, wenn das System die gewünschte Adresse nicht zuordnen kann. |
ENETDOWN | 100 | Es wird angezeigt, wenn das Netzwerk ausgefallen ist. |
ENETUNREACH | 101 | Es wird angezeigt, wenn das Netzwerk nicht erreichbar ist. |
ENETRESET | 102 | Es wird angezeigt, wenn die Netzwerkverbindung beim Zurücksetzen unterbrochen wurde. |
ECONNABORTED | 103 | Es wird angezeigt, wenn die Software einen Verbindungsabbruch verursacht hat. |
ECONNRESET | 104 | Es wird angezeigt, wenn die Verbindung vom Peer zurückgesetzt wird. |
ENOBUFS | 105 | Es wird angezeigt, wenn kein Pufferplatz verfügbar ist. |
ESKON | 106 | Es wird angezeigt, wenn der Transportendpunkt bereits verbunden ist. |
ENOTCONN | 107 | Es wird angezeigt, wenn der Transportendpunkt nicht verbunden ist. |
ESCHUTZ | 108 | Es wird angezeigt, wenn das System nach dem Herunterfahren des Transportendpunkts nicht senden kann. |
ETOMANYREFS | 109 | Es wird angezeigt, wenn zu viele Referenzen vorhanden sind: Verbindung nicht möglich. |
ETIMEDOUT | 110 | Es wird angezeigt, wenn die Verbindung abgelaufen ist. |
WIRTSCHAFTLICH VERWEIGERT | 111 | Es wird angezeigt, wenn die Verbindung abgelehnt wird. |
EHOSTDOWN | 112 | Es wird angezeigt, wenn der Host ausgefallen ist. |
EHOSTUNREACH | 113 | Es wird angezeigt, wenn keine Route zum Host vorhanden ist. |
SCHON BEREITS | 114 | Es wird angezeigt, wenn der Vorgang bereits läuft. |
JEDER FORTSCHRITT | 115 | Es wird angezeigt, wenn der Vorgang gerade ausgeführt wird. |
KLICKEN | 116 | Es wird für das Handle der veralteten Datei angezeigt. |
EUCLEAN | 117 | Es wird angezeigt, wenn die Struktur gereinigt werden muss. |
UNIFORM | 118 | Es wird für keine XENIX-benannte Typdatei angezeigt. |
VERFÜGBAR | 119 | Es wird angezeigt, wenn keine XENIX-Semaphoren verfügbar sind. |
EISNAM | 120 | Es wird angezeigt, wenn eine benannte Typdatei vorhanden ist. |
EREMOTIO | 121 | Es wird für einen Remote-I/O-Fehler angezeigt. |
EDQUOT | 122 | Es wird angezeigt, wenn das Festplattenkontingent überschritten ist. |
ENOMEDIUM | 123 | Es wird angezeigt, wenn kein Medium gefunden wurde. |
EMEDIUMTYP | 124 | Es wird angezeigt, wenn der falsche Medientyp vorhanden ist. |
ABGESAGT | 125 | Wird angezeigt, wenn der Vorgang abgebrochen wird. |
ENOKEY | 126 | Es wird angezeigt, wenn der erforderliche Schlüssel nicht verfügbar ist. |
EKEYABGELAUFEN | 127 | Es wird angezeigt, wenn der Schlüssel abgelaufen ist. |
EKEYREVOKED | 128 | Es wird angezeigt, wenn der Schlüssel widerrufen wurde. |
EKEYABGELEHNT | 129 | Wird angezeigt, wenn der Schlüssel vom Service abgelehnt wurde. |
EIGENTÜMERDEAD | 130 | Es wird angezeigt, wenn der Eigentümer verstorben ist. |
ENOTRECOVERABLE | 131 | Es wird angezeigt, dass kein wiederherstellbarer Zustand vorliegt. |
ERFKILL | 132 | Es wird angezeigt, wenn der Vorgang aufgrund von RF-Kill nicht möglich ist. |
EHWPOISON | 133 | Es wird angezeigt, wenn die Speicherseite einen Hardwarefehler aufweist. |