Linux-fejlkoder er de koder, der vises, hvis der opstår en fejl i systemet, mens du arbejder eller bruger et program. Fejlene kan genkendes ved hjælp af fejlkoder. Fejlkoderne hjælper os med at genkende fejlkilden.
Hvis vi arbejder på et Linux-system, er det tydeligt, at vi kan støde på fejl. Nogle fejl kan være mindre og kan ikke føre til afbrydelse af programmet. Men der kan være nogle fejl, der kan få et system eller program til at holde op med at reagere. Disse fejl kan føre til tab af data eller kan forhindre programmet i at fuldføre. For det meste vises fejl i form af koder eller meddelelser.
I dette afsnit vil vi se fejl i C-programmering og en liste over mulige fejl i Linux system.
Linux-fejl i C-programmering
En dygtig programmør bør vide, hvordan man håndterer fejlene. C programmeringssprog giver ikke direkte støtte til fejlhåndtering. Vi skal opdage kilden til fejlen og håndtere den. I C-sprog viser returværdierne fejlen eller succesen. Hvis en funktion i C-programmet fejler, skal vi håndtere fejlen i overensstemmelse hermed; ellers registrerer den fejlene sidst i en logfil.
Mens vi udfører C-programmerne, vil vi muligvis bemærke nogle fejlnumre, såsom 'Fejl nr. er: 17'. Her betyder fejl nr. 17, at filen allerede eksisterer. Hvert fejlnummer har en eller anden betydning.
C-sproget understøtter en variabel 'fejl ikke .' Ved at bruge denne fejlnummervariabel kan vi bruge nogle fejlhåndteringsfunktioner til at håndtere den korrekt.
For at bruge den eksterne variabels fejlnummer skal vi inkludere en header-fil 'errno.h.' Header-filen bruges til at definere 'errno'-variablen. Errno-variablen indstilles af systemkaldene og biblioteksfunktionerne i fejlforekomsten. Der er to vigtige funktioner i C programmeringssprog at håndtere fejl; fejl og strerror . Perror-funktionen bruges til at udskrive fejlbeskrivelsen, og sterror-funktionen returnerer en streng med fejlkode.
Lad os vise listen over fejlkoder ved at bruge errno.
Linux fejl
Errno-værktøjet bruges til at slå fejlkoder, makronavne og de tilsvarende beskrivelser op. For eksempel, hvis vi leverer ENOENT på et Linux-system, vil det vise koden 2 og beskrivelse ' Ingen sådan fil eller mappe .' Hvis vi angiver koden 2, vil den vise ENOENT og dets beskrivelse .
Hvis errno utility ikke er installeret på vores maskine, vil den vise fejlen som følger:
For at installere det, udfør nedenstående kommando:
sudo apt install moreutils
Ved at udføre ovenstående kommando installeres moreutils-pakken på vores maskine, der indeholder errno-værktøjet.
Vis listen over fejlkoder
For at få vist listen over fejlkoder skal du udføre kommandoen som følger:
errno -l
Ovenstående kommando viser listen over fejlkoder fra RedHat. Overvej nedenstående output:
Vis oplysningerne om et fejlnummer
For at vise oplysningerne om et bestemt fejlnummer skal du udføre kommandoen som følger:
errno 2
Ovenstående kommando vil vise beskrivelsen af fejl nummer 2. Overvej nedenstående output:
Vis oplysningerne om et fejlnavn
For at vise oplysningerne om et bestemt fejlnavn skal du udføre kommandoen errno efterfulgt af fejlnavnet. For eksempel for at vise oplysningerne om et fejlnavn 'ESRCH ,' udfør kommandoen som følger:
errno ESRCH
Ovenstående kommando vil vise oplysningerne om det angivne fejlnavn. Overvej nedenstående output:
Vis fejlen ved hjælp af strenge
For at vise en fejlbeskrivelse ved at bruge en streng fra beskrivelsen skal du udføre kommandoen som følger:
errno -s permission
Ovenstående kommando vil vise de fejl, hvis beskrivelse indeholder strengtilladelse. Overvej nedenstående output:
Liste over Linux-systemfejl
Følgende er en delvis liste over mulige fejl i Linux-systemet:
Fejlkode | fejl nr | Beskrivelse |
---|---|---|
Øverst | 1 | Den vises, hvis handlingen ikke er tilladt. |
ENOENT | 2 | Det vises, hvis der ikke findes en sådan fil eller mappe. |
ESRCH | 3 | Det vises, hvis der ikke findes en sådan proces. |
EINTR | 4 | Det vises for afbrudt systemopkald |
EIO | 5 | Det vises for input/output fejl. |
ENXIO | 6 | Det vises, hvis der ikke findes en sådan enhed eller adresse. |
E2BIG | 7 | Den vises, hvis argumentlisten er for lang. |
ENOEXEC | 8 | Det vises, hvis der er en exec-formatfejl |
EBADF | 9 | Det vises i tilfælde af dårlig filbeskrivelse. |
ECHILD | 10 | Det vises, hvis der ikke er nogen underordnet proces. |
IGEN | elleve | Det vises, hvis ressourcen er midlertidigt utilgængelig. |
ENOMEM | 12 | Det vises, hvis systemet ikke kan allokere hukommelse. |
EACCES | 13 | Det vises, hvis tilladelse nægtes. |
EFAULT | 14 | Det vises, hvis der er en dårlig adresse. |
ENOTBLK | femten | Det vises, hvis Bloker enhed er påkrævet. |
TRAVL | 16 | Det vises, hvis enheden eller ressourcen er optaget. |
EKSIST | 17 | Den vises, hvis filen allerede findes. |
EXDEV | 18 | Det vises, hvis der er ugyldigt link på tværs af enheder. |
ENODEV | 19 | Det vises, hvis der ikke er en sådan enhed. |
ENOTDIR | tyve | Den vises, hvis der ikke er en mappe. |
EISDIR | enogtyve | Det vises, hvis der er en mappe. |
ENKELT VALG | 22 | Det vises, hvis der er et ugyldigt argument. |
TAGE PÅ | 23 | Det vises, hvis der er for mange åbne filer i systemet. |
DØD | 24 | Det vises, hvis der er for mange åbne filer. |
ENOTTY | 25 | Det vises, hvis der er en upassende ioctl for enhed. |
ETXTBSY | 26 | Det vises, hvis tekstfilen er optaget. |
EFBIG | 27 | Det vises, hvis filen er for stor. |
ENOSPC | 28 | Det vises, hvis der ikke er plads tilbage på enheden. |
ESPIPE | 29 | Det vises i tilfælde af ulovlig søgning. |
EROFS | 30 | Det vises i tilfælde af skrivebeskyttet filsystem. |
EMLINK | 31 | Det vises, hvis der er for mange links. |
EPIPE | 32 | Det vises i tilfælde af knækket rør. |
EDOM | 33 | Det vises, hvis det numeriske argument er uden for domænet. |
ERANGE | 3. 4 | Det vises, hvis det numeriske resultat er uden for rækkevidde. |
EDEADLK | 35 | Det vises, hvis ressource-deadlock undgås. |
ENAMETOOLONG | 36 | Det vises, hvis filnavnet er for langt. |
ENOLCK | 37 | Det vises, hvis ingen låse er tilgængelige. |
ENOSYS | 38 | Det vises, hvis funktionen ikke er implementeret. |
ENOTEMME | 39 | Det vises, hvis biblioteket ikke er tomt. |
LOOP | 40 | Det vises, hvis der er for mange niveauer af symbolske links. |
ENOMSG | 42 | Den vises, hvis der ikke er nogen meddelelse af den ønskede type. |
EIDRM | 43 | Det vises, hvis identifikationen er fjernet. |
ECHRNG | 44 | Det vises, hvis kanalnummeret er uden for rækkevidde. |
EL2NSYNC | Fire. Fem | Det vises, hvis niveau 2 ikke er synkroniseret. |
EL3HLT | 46 | Det vises, hvis niveau 3 er standset. |
EL3RST | 47 | Det vises, hvis niveau 3 er nulstillet. |
ELNRNG | 48 | Det vises, hvis linknummeret er uden for rækkevidde. |
EUNATCH | 49 | Den vises, hvis protokoldriveren ikke er tilsluttet. |
ENOCSI | halvtreds | Det vises, hvis der ikke er nogen tilgængelig CSI-struktur. |
EL2HLT | 51 | Det vises, hvis niveau 2 er standset. |
DET HAR VÆRET | 52 | Det vises i tilfælde af ugyldig ombytning. |
EBADR | 53 | Den vises i tilfælde af ugyldig anmodningsbeskrivelse. |
UDFLYDENDE | 54 | Det vises, hvis udvekslingen er fuld. |
ENOANO | 55 | Det vises i tilfælde af Ingen anode. |
EBADRQC | 56 | Den vises for ugyldig anmodningskode. |
EBADSLT | 57 | Den vises for ugyldig plads. |
EBFONT | 59 | Det vises, hvis der er et dårligt skrifttypefilformat. |
ENSIDIGT | 60 | Det vises, hvis enheden ikke er en stream. |
ENODATA | 61 | Den vises, hvis der ikke er nogen tilgængelige data. |
ETIME | 62 | Det vises, hvis timeren er udløbet. |
ENOSR | 63 | Det vises i tilfælde af out of streams ressourcer. |
ENONET | 64 | Det vises, hvis maskinen ikke er på netværket. |
ENOPKG | 65 | Det vises, hvis pakken ikke er installeret. |
EREMOTE | 66 | Det vises, hvis objektet er fjerntliggende. |
ENOLINK | 67 | Det vises, hvis linket er blevet afbrudt. |
EADV | 68 | Det vises for reklamefejl. |
ESRMNT | 69 | Det vises for Srmount-fejl. |
EKOMM | 70 | Det vises, hvis der er kommunikationsfejl ved afsendelse. |
EPROTO | 71 | Det vises for protokolfejl. |
EMULTIHOP | 72 | Det vises for Multihop forsøgt. |
EDOTDOT | 73 | Det vises for RFS-specifik fejl. |
EBADMSG | 74 | Den vises for Dårlig besked. |
OVERFLØD | 75 | Den vises, hvis værdien er for stor til den definerede datatype. |
ENOTUNIQ | 76 | Det vises, hvis navnet ikke er unikt på netværket. |
EBADFD | 77 | Det vises, hvis filbeskrivelsen er i dårlig tilstand. |
EREMCHG | 78 | Det vises, hvis fjernadressen ændres. |
ELIBACC | 79 | Det vises, hvis vi ikke kan få adgang til et nødvendigt delt bibliotek. |
ELIBBAD | 80 | Det vises i tilfælde af adgang til et beskadiget delt bibliotek. |
ELIBSCN | 81 | Det vises, hvis der er .lib sektion i a.out er beskadiget. |
ELIBMAX | 82 | Det vises, hvis vi forsøger at linke i for mange delte biblioteker. |
ELIBEXEC | 83 | Det vises, hvis vi ikke kan udføre et delt bibliotek direkte. |
EILSEQ | 84 | Det vises for et ugyldigt eller ufuldstændigt multibyte- eller bredt tegn |
ERESTART | 85 | Det vises for at informere om, at afbrudt systemopkald skal genstartes. |
ESTRAPIPE | 86 | Det vises, hvis der er streams pipe fejl. |
BRUGERE | 87 | Det vises for for mange brugere. |
ENOTSOCK | 88 | Det vises for socketdrift på ikke-socket. |
EDESTADDRREQ | 89 | Det vises, hvis destinationsadressen er påkrævet. |
EMSGSIZE | 90 | Den vises, hvis meddelelsen er for lang. |
EPROTOTYPE | 91 | Det vises, hvis protokollen er en forkert type for socket. |
ENOPROTOOPT | 92 | Den vises, hvis protokollen ikke er tilgængelig. |
EPROTONOSUPPORT | 93 | Det vises, hvis protokollen ikke understøttes. |
ESOCKTNOSUPPORT | 94 | Den vises, hvis Socket-typen ikke understøttes. |
EOPNOTSUPP | 95 | Det vises, hvis handlingen ikke understøttes. |
EPFNOSUPPORT | 96 | Det vises, hvis protokolfamilien ikke understøttes. |
EAFNOSUPPORT | 97 | Den vises, hvis adressefamilien ikke understøttes af protokol. |
EADDRINUS | 98 | Den vises, hvis adressen allerede er i brug. |
EADDRNOTAVAIL | 99 | Den vises, hvis systemet ikke kan tildele den ønskede adresse. |
ENETDOWN | 100 | Det vises, hvis netværket er nede. |
ENETUNREACH | 101 | Det vises, hvis netværket ikke er tilgængeligt. |
ENETRESET | 102 | Det vises, hvis netværket har afbrudt forbindelsen ved nulstilling. |
ECONNABORTET | 103 | Det vises, hvis software forårsagede afbrydelse af forbindelsen. |
ECONNRESET | 104 | Det vises, hvis forbindelsen nulstilles af peer. |
ENOBUFS | 105 | Det vises, hvis der ikke er nogen bufferplads til rådighed. |
ESKON | 106 | Det vises, hvis transportendepunktet allerede er tilsluttet. |
ENOTCONN | 107 | Det vises, hvis transportendepunktet ikke er tilsluttet. |
ESHUTDOWN | 108 | Det vises, hvis systemet ikke kan sende efter nedlukning af transportendepunkt. |
ETOOMANYREFS | 109 | Det vises, hvis der er for mange referencer: kan ikke splejse. |
ETIMEOUT | 110 | Det vises, hvis forbindelsen er timeout. |
ECONNREFUSED | 111 | Det vises, hvis forbindelsen nægtes. |
EHOSTDOWN | 112 | Det vises, hvis værten er nede. |
EHOSTUNREACH | 113 | Det vises, hvis der ikke er nogen rute til vært. |
ALLEREDE KLAR | 114 | Det vises, hvis handlingen allerede er i gang. |
HVER FREMGANG | 115 | Det vises, hvis handlingen nu er i gang. |
KLIK | 116 | Det vises for forældet filhåndtag. |
EUCLEAN | 117 | Det vises, hvis strukturen skal renses. |
UNIFORM | 118 | Det vises ikke for en XENIX-navngivet typefil. |
UNDERSØG | 119 | Det vises, hvis der ikke er nogen tilgængelige XENIX-semaforer. |
EISNAM | 120 | Den vises, hvis der er en navngivet typefil. |
EREMOTIO | 121 | Det vises for Remote I/O-fejl. |
EDQUOT | 122 | Det vises, hvis diskkvoten overskrides. |
ENOMEDIUM | 123 | Det vises, hvis der ikke er fundet et medium. |
EMEDIUMTYPE | 124 | Det vises, hvis der er en forkert mediumtype. |
AFLYST | 125 | Det vises, hvis handlingen annulleres. |
ENOKEY | 126 | Den vises, hvis den nødvendige nøgle ikke er tilgængelig. |
EKEYEXPIRED | 127 | Det vises, hvis nøglen er udløbet. |
EKEY TILBAGET | 128 | Det vises, hvis nøglen er blevet tilbagekaldt. |
EKEY AFVISET | 129 | Det vises, hvis nøglen blev afvist af service. |
EOWNERDØD | 130 | Det vises, hvis ejeren er død. |
ENOT GENDANNELSE | 131 | Det vises for ingen genoprettelig tilstand. |
ERFKILL | 132 | Det vises, hvis operationen ikke er mulig på grund af RF-dræbning. |
EHWPOISON | 133 | Det vises, hvis hukommelsessiden har hardwarefejl. |