logo

Linux-foutcodes

Linux-foutcodes zijn codes die worden weergegeven als er een fout optreedt in het systeem tijdens het werken of gebruiken van een programma. Met behulp van foutcodes kunnen de fouten worden herkend. De foutcodes helpen ons bij het herkennen van de oorzaak van de fout.

Als we op een Linux-systeem werken, is het duidelijk dat we fouten kunnen tegenkomen. Sommige fouten kunnen klein zijn en leiden mogelijk niet tot onderbreking van het programma. Maar er kunnen enkele fouten optreden die ertoe kunnen leiden dat een systeem of programma niet meer reageert. Deze fouten kunnen leiden tot gegevensverlies of kunnen ervoor zorgen dat het programma niet wordt voltooid. Meestal worden fouten weergegeven in de vorm van codes of berichten.

In deze sectie zullen we fouten in C-programmering zien en een lijst met mogelijke fouten in de Linux systeem.

Linux-fouten in C-programmering

Een ervaren programmeur moet weten hoe hij met de fouten moet omgaan. De programmeertaal C biedt geen directe ondersteuning voor foutafhandeling. We moeten de oorzaak van de fout opsporen en ermee omgaan. In C-taal geven de retourwaarden de mislukking of het succes weer. Als een functie in het C-programma mislukt, moeten we de fout dienovereenkomstig afhandelen; anders registreert het de fouten als laatste in een logbestand.

Tijdens het uitvoeren van de C-programma's kunnen we enkele foutnummers tegenkomen, zoals 'Fout nr. is: 17'. Hier betekent fout nr. 17 dat het bestand al bestaat. Elk foutnummer heeft een bepaalde betekenis.

De C-taal ondersteunt een variabele 'fout .' Door deze foutnummervariabele te gebruiken, kunnen we enkele foutafhandelingsfuncties gebruiken om deze op de juiste manier af te handelen.

Om het externe variabele foutnummer te gebruiken, moeten we een headerbestand toevoegen 'errno.h.' Het headerbestand wordt gebruikt om de 'errno'-variabele te definiëren. De errno-variabele wordt ingesteld door de systeemaanroepen en bibliotheekfuncties bij het optreden van de fout. Er zijn twee belangrijke functies in de C-programmeertaal omgaan met fouten; fout En spanning . De perror-functie wordt gebruikt om de foutbeschrijving af te drukken en de sterror-functie retourneert een string met een foutcode.

Laten we de lijst met foutcodes weergeven met behulp van errno.

Linux fout

Het errno-hulpprogramma wordt gebruikt om errno-codes, macronamen en de bijbehorende beschrijvingen op te zoeken. Als we ENOENT bijvoorbeeld op een Linux-systeem aanbieden, wordt code 2 en beschrijving weergegeven ' Bestand of map bestaat niet .' Als we code 2 opgeven, wordt de ENOENT en zijn beschrijving .

Als het errno-hulpprogramma niet op onze machine is geïnstalleerd, wordt de fout als volgt weergegeven:

Linux-foutcodes

Om het te installeren, voert u de onderstaande opdracht uit:

 sudo apt install moreutils 

Door de bovenstaande opdracht uit te voeren, wordt het moreutils-pakket op onze machine geïnstalleerd dat het errno-hulpprogramma bevat.

Linux-foutcodes

Geef de lijst met foutcodes weer

Om de lijst met foutcodes weer te geven, voert u de opdracht als volgt uit:

 errno -l 

Met het bovenstaande commando wordt de lijst met foutcodes van RedHat weergegeven. Beschouw de onderstaande uitvoer:

Linux-foutcodes

Geef de informatie van een foutnummer weer

Om de informatie van een bepaald foutnummer weer te geven, voert u de opdracht als volgt uit:

 errno 2 

Met het bovenstaande commando wordt de beschrijving van foutnummer 2 weergegeven. Bekijk de onderstaande uitvoer:

Linux-foutcodes

Geef de informatie van een foutnaam weer

Om de informatie over een bepaalde foutnaam weer te geven, voert u de opdracht errno uit, gevolgd door de foutnaam. Om bijvoorbeeld de informatie over een foutnaam weer te geven 'ESRCH ,' voer de opdracht als volgt uit:

 errno ESRCH 

Met de bovenstaande opdracht wordt de informatie over de opgegeven foutnaam weergegeven. Beschouw de onderstaande uitvoer:

Linux-foutcodes

Geef de fout weer met behulp van tekenreeksen

Om een ​​foutbeschrijving weer te geven met behulp van een string uit de beschrijving, voert u de opdracht als volgt uit:

 errno -s permission 

Met de bovenstaande opdracht worden de fouten weergegeven waarvan de beschrijving tekenreekstoestemming bevat. Beschouw de onderstaande uitvoer:

Linux-foutcodes

Lijst met Linux-systeemfouten

Hieronder volgt een gedeeltelijke lijst met mogelijke fouten van het Linux-systeem:

Foutcode foutnr Beschrijving
Bovenste 1 Het wordt weergegeven als de bewerking niet is toegestaan.
ENOENT 2 Het wordt weergegeven als er geen dergelijk bestand of map bestaat.
ESRCH 3 Het wordt weergegeven als er geen dergelijk proces bestaat.
EINTR 4 Het wordt weergegeven voor Onderbroken systeemoproep
EIO 5 Het wordt weergegeven bij invoer-/uitvoerfouten.
ENXIO 6 Het wordt weergegeven als een dergelijk apparaat of adres niet bestaat.
E2BIG 7 Het wordt weergegeven als de argumentenlijst te lang is.
ENOEXEC 8 Het wordt weergegeven als er een exec-formaatfout is
EBADF 9 Het wordt weergegeven in geval van een slechte bestandsdescriptor.
ECKIND 10 Het wordt weergegeven als er geen onderliggend proces bestaat.
OPNIEUW elf Het wordt weergegeven als de bron tijdelijk niet beschikbaar is.
ENOMEM 12 Het wordt weergegeven als het systeem geen geheugen kan toewijzen.
EACCES 13 Het wordt weergegeven als toestemming wordt geweigerd.
EFAULT 14 Het wordt weergegeven als er een slecht adres is.
ENOTBLK vijftien Het wordt weergegeven als Blokkeerapparaat vereist is.
DRUK BEZIG 16 Het wordt weergegeven als het apparaat of de bron bezet is.
EEXIST 17 Het wordt weergegeven als het bestand al bestaat.
EXDEV 18 Het wordt weergegeven als er een ongeldige link tussen verschillende apparaten is.
ENODEV 19 Het wordt weergegeven als een dergelijk apparaat niet bestaat.
ENOTDIR twintig Het wordt weergegeven als er geen map is.
EISDIR eenentwintig Het wordt weergegeven als er een map is.
ENKELE KEUZE 22 Het wordt weergegeven als er een ongeldig argument is.
AANDOEN 23 Het wordt weergegeven als er te veel geopende bestanden in het systeem zijn.
DOOD 24 Het wordt weergegeven als er te veel geopende bestanden zijn.
ENOTTY 25 Het wordt weergegeven als er een ongepast ioctl voor het apparaat is.
ETXTBSY 26 Het wordt weergegeven als het tekstbestand bezet is.
EFBIG 27 Het wordt weergegeven als het bestand te groot is.
ENOSPC 28 Het wordt weergegeven als er geen ruimte meer is op het apparaat.
ESPIPE 29 Het wordt weergegeven in geval van illegale zoekacties.
EROFS 30 Het wordt weergegeven in het geval van een alleen-lezen bestandssysteem.
EMLINK 31 Het wordt weergegeven als er te veel links zijn.
EPIPE 32 Het wordt weergegeven in geval van een gebroken leiding.
EDOM 33 Het wordt weergegeven als het numerieke argument buiten het domein valt.
ERANGE 3. 4 Het wordt weergegeven als het numerieke resultaat buiten bereik is.
EDEADLK 35 Het wordt weergegeven als de impasse van de middelen wordt vermeden.
ENAMETOOLONG 36 Het wordt weergegeven als de bestandsnaam te lang is.
ENOLCK 37 Het wordt weergegeven als er geen sloten beschikbaar zijn.
ENOSYS 38 Het wordt weergegeven als de functie niet is geïmplementeerd.
ENOTEMPTIE 39 Het wordt weergegeven als de map niet leeg is.
ELOOP 40 Het wordt weergegeven als er te veel niveaus van symbolische koppelingen zijn.
ENOMSG 42 Het wordt weergegeven als er geen bericht van het gewenste type is.
EIDRM 43 Het wordt weergegeven als de identificatie is verwijderd.
ECHRNG 44 Dit wordt weergegeven als het kanaalnummer buiten bereik is.
EL2NSYNC Vier vijf Het wordt weergegeven als niveau 2 niet gesynchroniseerd is.
EL3HLT 46 Het wordt weergegeven als niveau 3 is gestopt.
EL3RST 47 Het wordt weergegeven als niveau 3 is gereset.
ELNRNG 48 Het wordt weergegeven als het linknummer buiten bereik is.
EUNATCH 49 Het wordt weergegeven als het protocolstuurprogramma niet is aangesloten.
ENOCSI vijftig Het wordt weergegeven als er geen CSI-structuur beschikbaar is.
EL2HLT 51 Het wordt weergegeven als Niveau 2 is gestopt.
HET IS GEWEEST 52 Het wordt weergegeven in geval van een ongeldige uitwisseling.
EBADR 53 Het wordt weergegeven in het geval van een ongeldige verzoekdescriptor.
EXVOL 54 Het wordt weergegeven als de uitwisseling vol is.
ENOANO 55 Dit wordt weergegeven als er geen anode is.
EBADRQC 56 Het wordt weergegeven voor een ongeldige aanvraagcode.
EBADLT 57 Het wordt weergegeven voor een ongeldig slot.
EBFONT 59 Het wordt weergegeven als er een slecht lettertypebestandsformaat is.
EENZIJDIG 60 Het wordt weergegeven als het apparaat geen stream is.
ENODATA 61 Het wordt weergegeven als er geen gegevens beschikbaar zijn.
ETIJD 62 Het wordt weergegeven als de timer is verstreken.
ENOSR 63 Het wordt weergegeven als er geen bronnen meer beschikbaar zijn.
ENONET 64 Het wordt weergegeven als de machine zich niet op het netwerk bevindt.
ENOPKG 65 Het wordt weergegeven als het pakket niet is geïnstalleerd.
EREMOTE 66 Het wordt weergegeven als het object zich op afstand bevindt.
ENOLINK 67 Het wordt weergegeven als de link is verbroken.
EADV 68 Het wordt weergegeven vanwege een advertentiefout.
ESRMNT 69 Het wordt weergegeven voor een Srmount-fout.
ECOMM 70 Het wordt weergegeven als er een communicatiefout is opgetreden bij het verzenden.
EPROTO 71 Het wordt weergegeven bij protocolfouten.
EMULTIHOP 72 Het wordt weergegeven voor Multihop-pogingen.
EDOTDOT 73 Het wordt weergegeven voor RFS-specifieke fouten.
EBADMSG 74 Het wordt weergegeven bij Slecht bericht.
EOVERSTROOM 75 Het wordt weergegeven als de waarde te groot is voor het gedefinieerde gegevenstype.
ENOTUNIQ 76 Het wordt weergegeven als de naam niet uniek is op het netwerk.
EBADFD 77 Het wordt weergegeven als de bestandsbeschrijving zich in een slechte staat bevindt.
EREMCHG 78 Het wordt weergegeven als het externe adres wordt gewijzigd.
ELIBACC 79 Het wordt weergegeven als we geen toegang hebben tot een benodigde gedeelde bibliotheek.
ELIBBAD 80 Het wordt weergegeven als u toegang krijgt tot een beschadigde gedeelde bibliotheek.
ELIBSCN 81 Het wordt weergegeven als de .lib-sectie in a.out beschadigd is.
ELIBMAX 82 Het wordt weergegeven als we proberen te veel gedeelde bibliotheken te koppelen.
ELIBEXEC 83 Het wordt weergegeven als we een gedeelde bibliotheek niet rechtstreeks kunnen uitvoeren.
EILSEQ 84 Het wordt weergegeven voor een ongeldig of onvolledig multibyte- of breed teken
ERESTART 85 Het wordt weergegeven om aan te geven dat de onderbroken systeemoproep opnieuw moet worden gestart.
ESTRPIJP 86 Het wordt weergegeven als er een streampipe-fout is.
EUSERS 87 Het wordt voor te veel gebruikers weergegeven.
ENOTSOCK 88 Het wordt weergegeven voor socketbediening op niet-socket.
EDESTADDRREQ 89 Het wordt weergegeven als het bestemmingsadres vereist is.
EMSGAAT 90 Het wordt weergegeven als het bericht te lang is.
EPROTOTYPE 91 Het wordt weergegeven als het protocol het verkeerde type voor socket heeft.
ENOPROTOOPT 92 Het wordt weergegeven als het protocol niet beschikbaar is.
EPROTONOSUPPORT 93 Het wordt weergegeven als het protocol niet wordt ondersteund.
ESOCKTNO-ONDERSTEUNING 94 Het wordt weergegeven als het Socket-type niet wordt ondersteund.
EOPNOTSUPP 95 Het wordt weergegeven als de bewerking niet wordt ondersteund.
EPFNO-ONDERSTEUNING 96 Het wordt weergegeven als de protocolfamilie niet wordt ondersteund.
EAFNOONDERSTEUNING 97 Het wordt weergegeven als de adresfamilie niet door het protocol wordt ondersteund.
EADDRINUS 98 Het wordt weergegeven als het adres al in gebruik is.
EADDRNIETBESCHIKBAAR 99 Het wordt weergegeven als het systeem het gevraagde adres niet kan toewijzen.
ENETDOWN 100 Het wordt weergegeven als het netwerk niet beschikbaar is.
ENETUNREACH 101 Het wordt weergegeven als het netwerk onbereikbaar is.
ENETRESET 102 Het wordt weergegeven als het netwerk de verbinding heeft verbroken bij het resetten.
ECONNABORTEERD 103 Het wordt weergegeven als software ervoor zorgt dat de verbinding wordt afgebroken.
ECONNRESET 104 Het wordt weergegeven als de verbinding door een peer wordt gereset.
ENOBUFS 105 Het wordt weergegeven als er geen bufferruimte beschikbaar is.
ESKON 106 Het wordt weergegeven als het transporteindpunt al is verbonden.
ENOTCONN 107 Het wordt weergegeven als het transporteindpunt niet is verbonden.
UITSLUITEN 108 Het wordt weergegeven als het systeem niet kan verzenden nadat het transporteindpunt is afgesloten.
ETOOMANYREFS 109 Het wordt weergegeven als er te veel referenties zijn: kan niet worden gesplitst.
ETIMEDOUT 110 Het wordt weergegeven als er een time-out voor de verbinding is.
ECONN-GEWEIGERD 111 Het wordt weergegeven als de verbinding wordt geweigerd.
EHOSTDOWN 112 Het wordt weergegeven als de host niet beschikbaar is.
EHOSTUNREACH 113 Het wordt weergegeven als er geen route naar de host is.
REEDS 114 Het wordt weergegeven als de bewerking al bezig is.
ELKE VOORUITGANG 115 Het wordt weergegeven als de bewerking nu wordt uitgevoerd.
KLIK 116 Het wordt weergegeven voor Verouderde bestandsingang.
EUCLEAN 117 Het wordt weergegeven als de structuur moet worden gereinigd.
UNIFORM 118 Het wordt weergegeven als het geen XENIX-typebestand is.
BESCHIKBAAR 119 Het wordt weergegeven als er geen XENIX-semaforen beschikbaar zijn.
EISNAM 120 Het wordt weergegeven als er een benoemd typebestand is.
EREMOTIE 121 Het wordt weergegeven bij een Remote I/O-fout.
EDQUOT 122 Het wordt weergegeven als het schijfquotum wordt overschreden.
ENOMEDIUM 123 Het wordt weergegeven als er geen medium is gevonden.
EMEDIUMTYPE 124 Het wordt weergegeven als er een verkeerd mediumtype is.
GEANNULEERD 125 Het wordt weergegeven als de bewerking is geannuleerd.
ENOKEY 126 Het wordt weergegeven als de vereiste sleutel niet beschikbaar is.
EKEYVERLOPEN 127 Het wordt weergegeven als de sleutel is verlopen.
EKEY INGETROKKEN 128 Het wordt weergegeven als de sleutel is ingetrokken.
EKEYAFGEWEZEN 129 Het wordt weergegeven als de sleutel door de servicedienst is afgewezen.
EOWNERDOOD 130 Het wordt weergegeven als de eigenaar is overleden.
EN NIET HERSTELBAAR 131 Het wordt weergegeven als er geen herstelbare status is.
ERFKILL 132 Het wordt weergegeven als de handeling niet mogelijk is vanwege RF-kill.
EHWPOISON 133 Het wordt weergegeven als de geheugenpagina een hardwarefout bevat.