Linux-felkoder är de koder som visas om ett fel uppstår i systemet när du arbetar eller använder ett program. Felen kan kännas igen med hjälp av felkoder. Felkoderna hjälper oss att identifiera felkällan.
Om vi arbetar på ett Linux-system är det uppenbart att vi kan stöta på fel. Vissa fel kan vara mindre och kanske inte leda till avbrott i programmet. Men det kan finnas några fel som kan göra att ett system eller program slutar svara. Dessa fel kan leda till förlust av data eller kan hindra programmet från att slutföras. Oftast visas fel i form av koder eller meddelanden.
I det här avsnittet kommer vi att se fel i C-programmering och en lista över möjliga fel i Linux systemet.
Linux-fel i C-programmering
En skicklig programmerare bör veta hur man hanterar felen. C programmeringsspråk ger inte direkt stöd för felhantering. Vi måste upptäcka källan till felet och ta itu med det. I C-språk visar returvärdena misslyckandet eller framgången. Om en funktion i C-programmet misslyckas måste vi hantera felet därefter; annars registreras felen sist i en loggfil.
När vi kör C-programmen kan vi märka några felnummer som 'Fel nr är: 17'. Här betyder fel nr 17 att filen redan finns. Varje felnummer har någon betydelse.
C-språket stöder en variabel 'fel inte .' Genom att använda denna felnummervariabel kan vi använda vissa felhanteringsfunktioner för att hantera det korrekt.
För att använda felnumret för den externa variabeln måste vi inkludera en rubrikfil 'errno.h.' Rubrikfilen används för att definiera variabeln 'errno'. Variabeln errno ställs in av systemanrop och biblioteksfunktioner i felförekomsten. Det finns två viktiga funktioner i C programmeringsspråk att hantera fel; fel och strerror . Perror-funktionen används för att skriva ut felbeskrivningen och sterror-funktionen returnerar en sträng med felkod.
Låt oss visa listan med felkoder genom att använda errno.
Linux fel
Errno-verktyget används för att leta upp felkoder, makronamn och motsvarande beskrivningar. Till exempel, om vi tillhandahåller ENOENT på ett Linux-system, kommer det att visa koden 2 och beskrivning ' Ingen sådan fil eller katalog .' Om vi tillhandahåller koden 2 kommer den att visa ENOENT och dess beskrivning .
Om errno-verktyget inte är installerat på vår maskin, kommer det att visa felet enligt följande:
För att installera det, kör följande kommando:
sudo apt install moreutils
Genom att utföra kommandot ovan installeras moreutils-paketet på vår maskin som innehåller verktyget errno.
Visa listan över felkoder
För att visa listan med felkoder, kör kommandot enligt följande:
errno -l
Ovanstående kommando visar listan med felkoder från RedHat. Tänk på följande utdata:
Visa information om ett felnummer
För att visa informationen om ett visst felnummer, utför kommandot enligt följande:
errno 2
Ovanstående kommando visar beskrivningen av fel nummer 2. Tänk på följande utdata:
Visa information om ett felnamn
För att visa informationen om ett visst felnamn, kör kommandot errno, följt av felnamnet. Till exempel för att visa informationen om ett felnamn 'ESRCH ,' kör kommandot enligt följande:
errno ESRCH
Kommandot ovan visar informationen om det angivna felnamnet. Tänk på följande utdata:
Visa felet med strängar
För att visa en felbeskrivning genom att använda en sträng från beskrivningen, kör kommandot enligt följande:
errno -s permission
Ovanstående kommando visar de fel vars beskrivning innehåller strängbehörighet. Tänk på följande utdata:
Lista över Linux-systemfel
Följande är en ofullständig lista över möjliga fel i Linux-systemet:
Felkod | fel nr | Beskrivning |
---|---|---|
Övre | 1 | Den visas om operationen inte är tillåten. |
ENOENT | 2 | Den visas om det inte finns någon sådan fil eller katalog. |
ESRCH | 3 | Den visas om det inte finns någon sådan process. |
EINTR | 4 | Den visas för avbrutet systemsamtal |
EIO | 5 | Den visas för in-/utmatningsfel. |
ENXIO | 6 | Den visas om det inte finns någon sådan enhet eller adress. |
E2BIG | 7 | Den visas om argumentlistan är för lång. |
ENOEXEC | 8 | Det visas om det finns ett exec-formatfel |
EBADF | 9 | Den visas i händelse av dålig filbeskrivning. |
ECHILD | 10 | Den visas om det inte finns någon underordnad process. |
IGEN | elva | Den visas om resursen är tillfälligt otillgänglig. |
ENOMEM | 12 | Den visas om systemet inte kan allokera minne. |
EACCES | 13 | Den visas om tillstånd nekas. |
EFAULT | 14 | Den visas om det finns en dålig adress. |
ENOTBLK | femton | Den visas om Blockera enhet krävs. |
UPPTAGEN | 16 | Den visas om enheten eller resursen är upptagen. |
EEXISTERA | 17 | Den visas om filen redan finns. |
EXDEV | 18 | Den visas om det finns en ogiltig länk över flera enheter. |
ENODEV | 19 | Den visas om det inte finns någon sådan enhet. |
ENOTDIR | tjugo | Den visas om det inte finns en katalog. |
EISDIR | tjugoett | Den visas om det finns en katalog. |
ENDA VAL | 22 | Det visas om det finns ett ogiltigt argument. |
TA PÅ | 23 | Det visas om det finns för många öppna filer i systemet. |
DÖD | 24 | Den visas om det finns för många öppna filer. |
ENOTTY | 25 | Den visas om det finns en olämplig ioctl för enheten. |
ETXTBSY | 26 | Den visas om textfilen är upptagen. |
EFBIG | 27 | Den visas om filen är för stor. |
ENOSPC | 28 | Den visas om det inte finns något utrymme kvar på enheten. |
ESPIPE | 29 | Den visas vid olaglig sökning. |
EROFS | 30 | Det visas vid skrivskyddat filsystem. |
EMLINK | 31 | Den visas om det finns för många länkar. |
EPIPE | 32 | Den visas i händelse av trasigt rör. |
EDOM | 33 | Det visas om det numeriska argumentet är utanför domänen. |
ERANGE | 3. 4 | Det visas om det numeriska resultatet ligger utanför intervallet. |
EDEADLK | 35 | Den visas om låsning av resurser undviks. |
ENAMETOOLONG | 36 | Det visas om filnamnet är för långt. |
ENOLCK | 37 | Den visas om inga lås är tillgängliga. |
ENOSYS | 38 | Den visas om funktionen inte är implementerad. |
ENOTEMPTY | 39 | Den visas om katalogen inte är tom. |
LOPP | 40 | Den visas om det finns för många nivåer av symboliska länkar. |
ENOMSG | 42 | Det visas om det inte finns något meddelande av önskad typ. |
EIDRM | 43 | Den visas om identifieraren tas bort. |
ECHRNG | 44 | Den visas om kanalnumret är utanför räckvidd. |
EL2NSYNC | Fyra fem | Den visas om nivå 2 inte är synkroniserad. |
EL3HLT | 46 | Den visas om nivå 3 stoppas. |
EL3RST | 47 | Den visas om nivå 3 återställs. |
ELNRNG | 48 | Den visas om länknumret ligger utanför räckvidden. |
EUNATCH | 49 | Det visas om protokolldrivrutinen inte är ansluten. |
ENOCSI | femtio | Den visas om det inte finns någon tillgänglig CSI-struktur. |
EL2HLT | 51 | Den visas om nivå 2 stoppas. |
DET HAR VARIT | 52 | Den visas i händelse av ogiltigt utbyte. |
EBADR | 53 | Den visas i händelse av ogiltig begärandeskriptor. |
EXFULL | 54 | Den visas om utbytet är fullt. |
ENOANO | 55 | Den visas i händelse av Ingen anod. |
EBADRQC | 56 | Den visas för ogiltig förfrågningskod. |
EBADSLT | 57 | Den visas för ogiltig plats. |
EBFONT | 59 | Det visas om det finns dåligt teckensnittsfilformat. |
ENSIDIG | 60 | Den visas om enheten inte är en stream. |
ENODATA | 61 | Den visas om det inte finns några tillgängliga data. |
ETIME | 62 | Den visas om timern har gått ut. |
ENOSR | 63 | Det visas i händelse av out of streams-resurser. |
ENONET | 64 | Den visas om maskinen inte finns i nätverket. |
ENOPKG | 65 | Det visas om paketet inte är installerat. |
EREMOTE | 66 | Det visas om objektet är avlägset. |
ENOLINK | 67 | Den visas om länken har brutits. |
EADV | 68 | Det visas för annonsfel. |
ESRMNT | 69 | Det visas för Srmount-fel. |
ECOMM | 70 | Den visas om det finns ett kommunikationsfel vid sändningen. |
EPROTO | 71 | Det visas för protokollfel. |
EMULTIHOPPA | 72 | Det visas för Multihop försök. |
EDOTDOT | 73 | Det visas för RFS-specifikt fel. |
EBADMSG | 74 | Det visas för dåligt meddelande. |
ÖVERFLÖDE | 75 | Det visas om värdet är för stort för definierad datatyp. |
ENOTUNIQ | 76 | Det visas om namnet inte är unikt på nätverket. |
EBADFD | 77 | Den visas om filbeskrivningen är i dåligt tillstånd. |
EREMCHG | 78 | Den visas om fjärradress ändras. |
ELIBACC | 79 | Det visas om vi inte kan komma åt ett nödvändigt delat bibliotek. |
ELIBBAD | 80 | Den visas i händelse av åtkomst till ett skadat delat bibliotek. |
ELIBSCN | 81 | Det visas om det finns .lib-sektion i a.out är skadad. |
ELIBMAX | 82 | Det visas om vi försöker länka i för många delade bibliotek. |
ELIBEXEC | 83 | Det visas om vi inte kan utföra ett delat bibliotek direkt. |
EILSEQ | 84 | Den visas för ett ogiltigt eller ofullständigt multibyte- eller brett tecken |
ERESTART | 85 | Den visas för att informera om att ett avbrutet systemsamtal ska startas om. |
ESTRPIP | 86 | Det visas om det finns ett strömrörsfel. |
EUSERS | 87 | Det visas för för många användare. |
ENOTSOCK | 88 | Den visas för uttagsdrift på icke-uttag. |
EDESTADDRREQ | 89 | Den visas om destinationsadressen krävs. |
EMSGSIZE | 90 | Det visas om meddelandet är för långt. |
EPROTOTYP | 91 | Det visas om protokollet är fel typ för socket. |
ENOPROTOOPT | 92 | Det visas om protokollet inte är tillgängligt. |
EPROTONOSUPPORT | 93 | Det visas om protokollet inte stöds. |
ESOCKTNOSUPPORT | 94 | Den visas om Socket-typen inte stöds. |
EOPNOTSUPP | 95 | Den visas om operationen inte stöds. |
EPFNOSUPPORT | 96 | Det visas om protokollfamiljen inte stöds. |
EAFNOSUPPORT | 97 | Den visas om adressfamiljen inte stöds av protokoll. |
EADDRINUS | 98 | Den visas om adressen redan används. |
EADDRNOTAVAIL | 99 | Den visas om systemet inte kan tilldela begärd adress. |
ENETDOWN | 100 | Den visas om nätverket är nere. |
ENETUNREACH | 101 | Den visas om nätverket inte går att nå. |
ENETRESET | 102 | Den visas om nätverket har avbrutit anslutningen vid återställning. |
ECONNABORTERAD | 103 | Den visas om programvaran orsakade att anslutningen avbröts. |
ECONNRESET | 104 | Den visas om anslutningen återställs av peer. |
ENOBUFS | 105 | Den visas om det inte finns något tillgängligt buffertutrymme. |
ESKON | 106 | Den visas om transportändpunkten redan är ansluten. |
ENOTCONN | 107 | Den visas om transportändpunkten inte är ansluten. |
ESHUTDOWN | 108 | Den visas om systemet inte kan skicka efter avstängning av transportändpunkt. |
ETOOMANYREFS | 109 | Det visas om det finns för många referenser: kan inte skarva. |
ETIMEOUT | 110 | Den visas om anslutningen har gått ut. |
ECONNREFUSED | 111 | Den visas om anslutningen nekas. |
EHOSTDOWN | 112 | Den visas om värden är nere. |
EHOSTUNREACH | 113 | Den visas om det inte finns någon rutt till värd. |
REDAN | 114 | Den visas om operationen redan pågår. |
VARJE FRAMSTEG | 115 | Det visas om operationen nu pågår. |
KLICK | 116 | Det visas för inaktuell filhantering. |
EUCLEAN | 117 | Det visas om strukturen behöver rengöras. |
ENHETLIG | 118 | Den visas inte för en XENIX-namnfil. |
UNDERSÖK | 119 | Den visas om det inte finns några tillgängliga XENIX-semaforer. |
EISNAM | 120 | Den visas om det finns en namngiven typfil. |
EREMOTIO | 121 | Det visas för Remote I/O-fel. |
EDQUOT | 122 | Den visas om diskkvoten överskrids. |
ENOMEDIUM | 123 | Den visas om det inte finns något medium. |
EMEDIUMTYP | 124 | Den visas om det finns fel mediumtyp. |
INSTÄLLD | 125 | Den visas om operationen avbryts. |
ENOKEY | 126 | Den visas om den nödvändiga nyckeln inte är tillgänglig. |
EKEYEXPIRED | 127 | Den visas om nyckeln har gått ut. |
EKEYREVOKED | 128 | Den visas om nyckeln har återkallats. |
EKEY AVVISAD | 129 | Det visas om nyckeln avvisades av service. |
EOWNERDEAD | 130 | Det visas om ägaren är död. |
ENOTTERNATNINGSBAR | 131 | Den visas för inget återställningsbart tillstånd. |
ERFKILL | 132 | Den visas om operationen inte är möjlig på grund av RF-död. |
EHWPOISON | 133 | Den visas om minnessidan har ett maskinvarufel. |