Linux-feilkoder er de kodene som vises hvis det oppstår en feil i systemet mens du arbeider eller bruker et program. Feilene kan gjenkjennes ved hjelp av feilkoder. Feilkodene hjelper oss med å gjenkjenne feilkilden.
Hvis vi jobber med et Linux-system, er det åpenbart at vi kan støte på feil. Noen feil kan være mindre og kan ikke føre til avbrudd i programmet. Men det kan være noen feil som kan føre til at et system eller program slutter å svare. Disse feilene kan føre til tap av data eller kan hindre programmet i å fullføres. For det meste vises feil i form av koder eller meldinger.
I denne delen vil vi se feil i C-programmering og en liste over mulige feil i Linux system.
Linux-feil i C-programmering
En dyktig programmerer bør vite hvordan man håndterer feilene. C programmeringsspråk gir ikke direkte støtte for feilhåndtering. Vi må oppdage kilden til feilen og håndtere den. I C-språk viser returverdiene feilen eller suksessen. Hvis en funksjon i C-programmet feiler, må vi håndtere feilen deretter; ellers registrerer den feilene sist i en loggfil.
Mens vi kjører C-programmene, kan vi legge merke til noen feilnumre som 'Feilnummer er: 17'. Her betyr feil nr 17 at filen allerede eksisterer. Hvert feilnummer har en viss betydning.
C-språket støtter en variabel 'feil ikke .' Ved å bruke denne feilnummervariabelen kan vi bruke noen feilhåndteringsfunksjoner for å håndtere den riktig.
For å bruke det eksterne variabelens feilnummer, må vi inkludere en overskriftsfil 'errno.h.' Header-filen brukes til å definere 'errno'-variabelen. Errno-variabelen settes av systemanrop og bibliotekfunksjoner i feilforekomsten. Det er to viktige funksjoner i C programmeringsspråk å håndtere feil; feil og strerror . Perror-funksjonen brukes til å skrive ut feilbeskrivelsen og sterror-funksjonen returnerer en streng med feilkode.
La oss vise listen over feilkoder ved å bruke errno.
Linux feil
Errno-verktøyet brukes til å slå opp feilkoder, makronavn og tilhørende beskrivelser. For eksempel, hvis vi leverer ENOENT på et Linux-system, vil det vise koden 2 og beskrivelse ' Ingen slik fil eller katalog .' Hvis vi oppgir koden 2, vil den vise ENOENT og dens beskrivelse .
Hvis errno-verktøyet ikke er installert på maskinen vår, vil det vise feilen som følger:
For å installere det, kjør kommandoen nedenfor:
sudo apt install moreutils
Ved å utføre kommandoen ovenfor, installeres moreutils-pakken på maskinen vår som inneholder errno-verktøyet.
Vis listen over feilkoder
For å vise listen over feilkoder, kjør kommandoen som følger:
errno -l
Kommandoen ovenfor vil vise listen over feilkoder fra RedHat. Tenk på utgangen nedenfor:
Vis informasjon om et feilnummer
For å vise informasjonen om et bestemt feilnummer, kjør kommandoen som følger:
errno 2
Kommandoen ovenfor vil vise beskrivelsen av feil nummer 2. Tenk på utgangen nedenfor:
Vis informasjonen om et feilnavn
For å vise informasjonen om et bestemt feilnavn, utfør errno-kommandoen, etterfulgt av feilnavnet. For eksempel for å vise informasjon om et feilnavn 'ESRCH ,' utfør kommandoen som følger:
errno ESRCH
Kommandoen ovenfor vil vise informasjonen om det angitte feilnavnet. Tenk på utgangen nedenfor:
Vis feilen ved hjelp av strenger
For å vise en feilbeskrivelse ved å bruke en streng fra beskrivelsen, kjør kommandoen som følger:
errno -s permission
Kommandoen ovenfor vil vise feilene hvis beskrivelse inneholder strengtillatelse. Tenk på utgangen nedenfor:
Liste over Linux-systemfeil
Følgende er en delvis liste over mulige feil i Linux-systemet:
Feil kode | feil nr | Beskrivelse |
---|---|---|
Øverste | 1 | Den vises hvis operasjonen ikke er tillatt. |
ENOENT | 2 | Den vises hvis det ikke finnes en slik fil eller katalog. |
ESRCH | 3 | Det vises hvis det ikke finnes en slik prosess. |
EITR | 4 | Det vises for avbrutt systemanrop |
EIO | 5 | Det vises for input/output feil. |
ENXIO | 6 | Den vises hvis det ikke finnes en slik enhet eller adresse. |
E2BIG | 7 | Den vises hvis argumentlisten er for lang. |
ENOEXEC | 8 | Det vises hvis det er en exec-formatfeil |
EBADF | 9 | Den vises i tilfelle dårlig filbeskrivelse. |
ECHILD | 10 | Det vises hvis det ikke finnes noen underordnet prosess. |
IGJEN | elleve | Den vises hvis ressursen er midlertidig utilgjengelig. |
ENOMEM | 12 | Den vises hvis systemet ikke kan tildele minne. |
TILGANG | 1. 3 | Den vises hvis tillatelse nektes. |
EFAULT | 14 | Den vises hvis det er en dårlig adresse. |
ENOTBLK | femten | Det vises hvis Blokker enhet er nødvendig. |
OPPTATT | 16 | Den vises hvis enheten eller ressursen er opptatt. |
EKSISTERER | 17 | Den vises hvis filen allerede eksisterer. |
EXDEV | 18 | Den vises hvis det er ugyldig kobling på tvers av enheter. |
ENODEV | 19 | Den vises hvis det ikke finnes en slik enhet. |
ENOTDIR | tjue | Den vises hvis det ikke er en katalog. |
EISDIR | tjueen | Den vises hvis det er en katalog. |
ENKELTVALG | 22 | Det vises hvis det er et ugyldig argument. |
TA PÅ | 23 | Det vises hvis det er for mange åpne filer i systemet. |
DØD | 24 | Den vises hvis det er for mange åpne filer. |
ENOTTY | 25 | Det vises hvis det er en upassende ioctl for enheten. |
ETXTBSY | 26 | Den vises hvis tekstfilen er opptatt. |
EFBIG | 27 | Den vises hvis filen er for stor. |
ENOSPC | 28 | Den vises hvis det ikke er plass igjen på enheten. |
ESPIPE | 29 | Den vises i tilfelle ulovlig søking. |
EROFS | 30 | Det vises i tilfelle skrivebeskyttet filsystem. |
EMLINK | 31 | Den vises hvis det er for mange lenker. |
EPIPE | 32 | Den vises i tilfelle rørbrudd. |
EDOM | 33 | Det vises hvis det numeriske argumentet er utenfor domenet. |
ERANGE | 3. 4 | Det vises hvis det numeriske resultatet er utenfor området. |
EDEADLK | 35 | Det vises hvis ressursstopp unngås. |
ENAMETOOLONG | 36 | Det vises hvis filnavnet er for langt. |
ENOLCK | 37 | Den vises hvis ingen låser er tilgjengelige. |
ENOSYS | 38 | Den vises hvis funksjonen ikke er implementert. |
ENOTEMME | 39 | Den vises hvis katalogen ikke er tom. |
SLUKK | 40 | Det vises hvis det er for mange nivåer av symbolske lenker. |
ENOMSG | 42 | Den vises hvis det ikke er noen melding av ønsket type. |
EIDRM | 43 | Den vises hvis identifikatoren er fjernet. |
ECHRNG | 44 | Det vises hvis kanalnummeret er utenfor rekkevidde. |
EL2NSYNC | Fire fem | Den vises hvis nivå 2 ikke er synkronisert. |
EL3HLT | 46 | Det vises hvis nivå 3 er stoppet. |
EL3RST | 47 | Det vises hvis nivå 3 er tilbakestilt. |
ELNRNG | 48 | Det vises hvis koblingsnummeret er utenfor rekkevidde. |
EUNATCH | 49 | Den vises hvis protokolldriveren ikke er tilkoblet. |
ENOCSI | femti | Den vises hvis det ikke er noen tilgjengelig CSI-struktur. |
EL2HLT | 51 | Det vises hvis nivå 2 er stoppet. |
DET HAR VÆRT | 52 | Den vises i tilfelle ugyldig bytte. |
EBADR | 53 | Den vises i tilfelle ugyldig forespørselsbeskrivelse. |
EXFULL | 54 | Det vises hvis utvekslingen er full. |
ENOANO | 55 | Det vises i tilfelle Ingen anode. |
EBADRQC | 56 | Den vises for ugyldig forespørselskode. |
EBADSLT | 57 | Det vises for ugyldig spor. |
EBFONT | 59 | Det vises hvis det er dårlig skriftformat. |
ENSIDIG | 60 | Den vises hvis enheten ikke er en strøm. |
ENODATA | 61 | Den vises hvis det ikke er data tilgjengelig. |
ETIME | 62 | Den vises i tilfelle timeren er utløpt. |
ENOSR | 63 | Det vises i tilfelle ressurser uten strøm. |
ENONET | 64 | Den vises hvis maskinen ikke er på nettverket. |
ENOPKG | 65 | Den vises hvis pakken ikke er installert. |
EREMOTE | 66 | Det vises hvis objektet er eksternt. |
ENOLINK | 67 | Den vises hvis koblingen er brutt. |
EADV | 68 | Det vises for reklamefeil. |
ESRMNT | 69 | Det vises for Srmount-feil. |
EKOMM | 70 | Det vises hvis det er kommunikasjonsfeil ved sending. |
EPROTO | 71 | Det vises for protokollfeil. |
EMULTIHOPPE | 72 | Det vises for Multihop forsøkt. |
EDOTDOT | 73 | Den vises for RFS-spesifikk feil. |
EBADMSG | 74 | Den vises for Dårlig melding. |
OVERFLØT | 75 | Den vises hvis verdien er for stor for definert datatype. |
ENOTUNIQ | 76 | Det vises hvis navnet ikke er unikt på nettverket. |
EBADFD | 77 | Den vises hvis filbeskrivelsen er i dårlig tilstand. |
EREMCHG | 78 | Den vises hvis den eksterne adressen endres. |
ELIBACC | 79 | Det vises hvis vi ikke får tilgang til et nødvendig delt bibliotek. |
ELIBBAD | 80 | Den vises i tilfelle tilgang til et ødelagt delt bibliotek. |
ELIBSCN | 81 | Det vises hvis det er .lib-seksjon i a.out er ødelagt. |
ELIBMAX | 82 | Det vises hvis vi prøver å koble til for mange delte biblioteker. |
ELIBEXEC | 83 | Det vises hvis vi ikke kan utføre et delt bibliotek direkte. |
EILSEQ | 84 | Det vises for et ugyldig eller ufullstendig multibyte eller bredt tegn |
ERESTART | 85 | Det vises for å informere om at avbrutt systemanrop bør startes på nytt. |
ESTRAPIP | 86 | Det vises hvis det er streams pipe feil. |
EUSERS | 87 | Det vises for for mange brukere. |
ENOTSOCK | 88 | Det vises for socketdrift på ikke-socket. |
EDESTADDRREQ | 89 | Den vises hvis destinasjonsadressen er nødvendig. |
EMSGSIZE | 90 | Den vises hvis meldingen er for lang. |
EPROTOTYPE | 91 | Den vises hvis protokollen er feil type for socket. |
ENOPROTOOPT | 92 | Den vises hvis protokollen ikke er tilgjengelig. |
EPROTONOSUPPORT | 93 | Den vises hvis protokollen ikke støttes. |
ESOCKTNOSUPPORT | 94 | Den vises hvis Socket-typen ikke støttes. |
EOPNOTSUPP | 95 | Den vises hvis operasjonen ikke støttes. |
EPFNOSTØTTE | 96 | Den vises hvis protokollfamilien ikke støttes. |
EAFNOSUPPORT | 97 | Den vises hvis adressefamilien ikke støttes av protokollen. |
EADDRINUS | 98 | Den vises hvis adressen allerede er i bruk. |
EADDRNOTAVAIL | 99 | Den vises hvis systemet ikke kan tildele den forespurte adressen. |
ENETDOWN | 100 | Den vises hvis nettverket er nede. |
ENETUNREACH | 101 | Det vises hvis nettverket ikke er tilgjengelig. |
ENETRESET | 102 | Det vises hvis nettverket har mistet forbindelsen ved tilbakestilling. |
ECONNABORTERT | 103 | Det vises hvis programvaren forårsaket tilkoblingen avbrutt. |
ECONNRESET | 104 | Det vises hvis tilkoblingen er tilbakestilt av peer. |
ENOBUFS | 105 | Den vises hvis det ikke er ledig bufferplass. |
ESKON | 106 | Det vises hvis transportendepunktet allerede er tilkoblet. |
ENOTCONN | 107 | Det vises hvis transportendepunktet ikke er tilkoblet. |
ESHUTDOWN | 108 | Det vises hvis systemet ikke kan sende etter nedleggelse av transportendepunkt. |
ETOOMANYREFS | 109 | Det vises hvis det er for mange referanser: kan ikke spleise. |
ETIMEOUT | 110 | Den vises hvis tilkoblingen er tidsavbrutt. |
ECONNREFUSED | 111 | Den vises hvis tilkoblingen nektes. |
EHOSTDOWN | 112 | Det vises hvis verten er nede. |
EHOSTUNREACH | 113 | Det vises hvis det ikke er noen rute til vert. |
ALLEREDE | 114 | Den vises hvis operasjonen allerede er i gang. |
HVER FREMGANG | 115 | Det vises hvis operasjonen nå pågår. |
KLIKK | 116 | Det vises for foreldet filhåndtak. |
EUCLEAN | 117 | Det vises hvis strukturen trenger rengjøring. |
UNIFORM | 118 | Den vises for ikke en XENIX-navngitt type fil. |
ENAVIL | 119 | Det vises hvis det ikke er noen XENIX-semaforer tilgjengelig. |
EISNAM | 120 | Den vises hvis det er en navngitt type fil. |
EREMOTIO | 121 | Det vises for Remote I/O-feil. |
EDQUOT | 122 | Den vises hvis diskkvoten er overskredet. |
ENOMEDIUM | 123 | Det vises hvis det ikke er noe medium funnet. |
EMEDIUMTYPE | 124 | Den vises hvis det er feil medium type. |
AVLYST | 125 | Den vises hvis operasjonen avbrytes. |
ENOKEY | 126 | Den vises hvis den nødvendige nøkkelen ikke er tilgjengelig. |
EKEYEXPIRED | 127 | Den vises hvis nøkkelen er utløpt. |
EKEYREVOKED | 128 | Den vises hvis nøkkelen er tilbakekalt. |
EKEY AVVISET | 129 | Det vises hvis nøkkelen ble avvist av service. |
EOWNERDEAD | 130 | Det vises hvis eieren er død. |
ENOT-RETTINNBAR | 131 | Den vises for ingen gjenopprettbar tilstand. |
ERFKILL | 132 | Det vises hvis operasjonen ikke er mulig på grunn av RF-kill. |
EHWPOISON | 133 | Den vises hvis minnesiden har maskinvarefeil. |