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:
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.
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:
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:
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:
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:
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. |