Linux klaidų kodai yra tie kodai, kurie rodomi, jei sistemoje įvyksta klaida dirbant ar naudojant programą. Klaidas galima atpažinti naudojant klaidų kodus. Klaidų kodai padeda mums atpažinti klaidos šaltinį.
Jei dirbame su Linux sistema, akivaizdu, kad galime susidurti su klaidomis. Kai kurios klaidos gali būti nedidelės ir dėl to programa gali nenutrūkti. Tačiau gali būti klaidų, dėl kurių sistema ar programa gali nustoti reaguoti. Dėl šių klaidų gali būti prarasti duomenys arba programa negali būti užbaigta. Dažniausiai klaidos rodomos kodų arba pranešimų pavidalu.
Šiame skyriuje pamatysime C programavimo klaidas ir galimų klaidų sąrašą Linux sistema.
Linux klaidos programuojant C
Kvalifikuotas programuotojas turėtų žinoti, kaip elgtis su klaidomis. C programavimo kalba nesuteikia tiesioginio klaidų tvarkymo palaikymo. Turime nustatyti klaidos šaltinį ir su ja kovoti. C kalba grąžinamos vertės rodo nesėkmę arba sėkmę. Jei C programos funkcija sugenda, turime atitinkamai elgtis su klaida; kitu atveju klaidas įrašo paskutinės į žurnalo failą.
Vykdydami C programas galime pastebėti kai kuriuos klaidų numerius, pvz., „Klaidos numeris yra: 17“. Čia klaida Nr. 17 reiškia, kad failas jau yra. Kiekvienas klaidos numeris turi tam tikrą reikšmę.
C kalba palaiko kintamąjį 'klaida .' Naudodami šį klaidos skaičiaus kintamąjį galime naudoti kai kurias klaidų tvarkymo funkcijas, kad galėtume tinkamai jį apdoroti.
Norėdami naudoti išorinio kintamojo klaidos numerį, turime įtraukti antraštės failą 'errno.h.' Antraštės failas naudojamas kintamajam „errno“ apibrėžti. Klaidos kintamąjį nustato sistemos iškvietimai ir bibliotekos funkcijos įvykus klaidai. Yra dvi svarbios funkcijos C programavimo kalba spręsti klaidas; klaidą ir strerror . Perror funkcija naudojama klaidos aprašymui spausdinti, o funkcija sterror grąžina eilutę su klaidos kodu.
Naudodami errno parodykime klaidų kodų sąrašą.
Linux klaida
Errno įrankis naudojamas klaidų kodams, makrokomandų pavadinimams ir atitinkamiems aprašymams ieškoti. Pavyzdžiui, jei ENOENT pateikiame Linux sistemoje, bus rodomas kodas 2 ir aprašymas Tokio failo ar katalogo nėra .' Jei pateiksime kodą 2, bus rodomas ENOENT ir jo aprašymas .
Jei mūsų kompiuteryje neįdiegta „errno“ programa, ji parodys klaidą taip:
Norėdami jį įdiegti, vykdykite žemiau esančią komandą:
sudo apt install moreutils
Vykdant aukščiau pateiktą komandą, mūsų kompiuteryje įdiegiamas moreutils paketas, kuriame yra errno įrankis.
Rodyti klaidų kodų sąrašą
Norėdami pamatyti klaidų kodų sąrašą, vykdykite komandą taip:
errno -l
Aukščiau pateikta komanda parodys RedHat klaidų kodų sąrašą. Apsvarstykite toliau pateiktą išvestį:
Rodyti klaidos numerio informaciją
Norėdami parodyti konkretaus klaidos numerio informaciją, vykdykite komandą taip:
errno 2
Aukščiau pateikta komanda parodys klaidos numerio 2 aprašymą. Apsvarstykite toliau pateiktą išvestį:
Rodyti klaidos pavadinimo informaciją
Norėdami parodyti konkretaus klaidos pavadinimo informaciją, vykdykite komandą errno, po kurios nurodykite klaidos pavadinimą. Pavyzdžiui, norint parodyti klaidos pavadinimo informaciją „ESRCH , vykdykite komandą taip:
errno ESRCH
Aukščiau pateikta komanda parodys informaciją apie nurodytą klaidos pavadinimą. Apsvarstykite toliau pateiktą išvestį:
Rodykite klaidą naudodami eilutes
Norėdami parodyti klaidos aprašymą naudodami eilutę iš aprašymo, vykdykite komandą taip:
errno -s permission
Aukščiau pateikta komanda parodys klaidas, kurių aprašyme yra eilutės leidimas. Apsvarstykite toliau pateiktą išvestį:
Linux sistemos klaidų sąrašas
Toliau pateikiamas dalinis galimų „Linux“ sistemos klaidų sąrašas:
Klaidos kodas | klaida Nr | apibūdinimas |
---|---|---|
Viršutinė | 1 | Jis rodomas, jei operacija neleidžiama. |
ENOENT | 2 | Jis rodomas, jei tokio failo ar katalogo nėra. |
ESRCH | 3 | Jis rodomas, jei tokio proceso nėra. |
EINTR | 4 | Jis rodomas Nutrauktas sistemos skambutis |
EIO | 5 | Jis rodomas dėl įvesties / išvesties klaidos. |
ENXIO | 6 | Jis rodomas, jei tokio įrenginio nėra arba adresas neegzistuoja. |
E2BIG | 7 | Jis rodomas, jei argumentų sąrašas per ilgas. |
ENOEXEC | 8 | Jis rodomas, jei yra exec formato klaida |
EBADF | 9 | Jis rodomas netinkamo failo aprašo atveju. |
VAIKAS | 10 | Jis rodomas, jei nėra antrinio proceso. |
VĖL | vienuolika | Jis rodomas, jei ištekliai laikinai nepasiekiami. |
ENOMEM | 12 | Jis rodomas, jei sistema negali skirti atminties. |
EACCES | 13 | Jis rodomas, jei leidimas atmetamas. |
FAULT | 14 | Jis rodomas, jei yra netinkamas adresas. |
ENOTBLK | penkiolika | Jis rodomas, jei reikia blokuoti įrenginį. |
UŽSIĖMES | 16 | Jis rodomas, jei įrenginys arba išteklius užimtas. |
EGZISTUOJA | 17 | Jis rodomas, jei failas jau yra. |
EXDEV | 18 | Jis rodomas, jei yra neteisinga kelių įrenginių nuoroda. |
ENODEV | 19 | Jis rodomas, jei tokio įrenginio nėra. |
ENOTDIR | dvidešimt | Jis rodomas, jei nėra katalogo. |
EISDIR | dvidešimt vienas | Jis rodomas, jei yra katalogas. |
VIENAS PASIRINKIMAS | 22 | Jis rodomas, jei yra neteisingas argumentas. |
UŽSIDĖK | 23 | Jis rodomas, jei sistemoje yra per daug atidarytų failų. |
MIRUSI | 24 | Jis rodomas, jei yra per daug atidarytų failų. |
ENOTTY | 25 | Jis rodomas, jei įrenginiui yra netinkamas ioctl. |
ETXTBSY | 26 | Jis rodomas, jei tekstinis failas užimtas. |
EFBIG | 27 | Jis rodomas, jei failas yra per didelis. |
ENOSPC | 28 | Jis rodomas, jei įrenginyje nėra vietos. |
ESPIPE | 29 | Jis rodomas neteisėto ieškojimo atveju. |
EROFS | 30 | Jis rodomas tik skaitomai failų sistemai. |
EMLINK | 31 | Jis rodomas, jei yra per daug nuorodų. |
EPIPE | 32 | Jis rodomas nutrūkus vamzdžiui. |
EDOM | 33 | Jis rodomas, jei skaitmeninis argumentas yra už domeno. |
ERANGE | 3. 4 | Jis rodomas, jei skaitinis rezultatas yra už diapazono ribų. |
EDEADLK | 35 | Jis rodomas, jei išvengiama išteklių aklavietės. |
ENAMETOOLONG | 36 | Jis rodomas, jei failo pavadinimas per ilgas. |
ENOLCK | 37 | Jis rodomas, jei nėra užraktų. |
ENOSYS | 38 | Jis rodomas, jei funkcija neįdiegta. |
NETUŠČIA | 39 | Jis rodomas, jei katalogas nėra tuščias. |
ELOOP | 40 | Jis rodomas, jei yra per daug simbolinių nuorodų lygių. |
ENOMSG | 42 | Jis rodomas, jei nėra norimo tipo pranešimo. |
EIDRM | 43 | Jis rodomas, jei identifikatorius pašalinamas. |
ECHRNG | 44 | Jis rodomas, jei kanalo numeris yra už diapazono ribų. |
EL2NSINC | Keturi | Jis rodomas, jei 2 lygis nėra sinchronizuotas. |
EL3HLT | 46 | Jis rodomas, jei 3 lygis yra sustabdytas. |
EL3RST | 47 | Jis rodomas, jei iš naujo nustatytas 3 lygis. |
ELNRNG | 48 | Jis rodomas, jei nuorodos numeris yra už diapazono ribų. |
EUNATCAS | 49 | Jis rodomas, jei protokolo tvarkyklė nepridėta. |
ENOCSI | penkiasdešimt | Jis rodomas, jei nėra CSI struktūros. |
EL2HLT | 51 | Jis rodomas, jei 2 lygis yra sustabdytas. |
TAI BUVO | 52 | Jis rodomas netinkamo keitimo atveju. |
EBADR | 53 | Jis rodomas netinkamo užklausos aprašo atveju. |
PUIKUS | 54 | Jis rodomas, jei mainai yra pilni. |
ENOANO | 55 | Jis rodomas, jei nėra anodo. |
EBADRQC | 56 | Jis rodomas neteisingo užklausos kodo atveju. |
EBADSLT | 57 | Jis rodomas esant netinkamam lizdui. |
EBFONT | 59 | Jis rodomas, jei yra blogas šrifto failo formatas. |
VIENPUSĖ | 60 | Jis rodomas, jei įrenginys nėra srautas. |
ENODATA | 61 | Jis rodomas, jei nėra duomenų. |
LAIKAS | 62 | Jis rodomas pasibaigus laikmačio galiojimui. |
ENOSR | 63 | Jis rodomas, jei nėra srautų išteklių. |
ENONET | 64 | Jis rodomas, jei įrenginys neprijungtas prie tinklo. |
ENOPKG | 65 | Jis rodomas, jei paketas neįdiegtas. |
EREMOTE | 66 | Jis rodomas, jei objektas yra nuotolinis. |
ENOLINK | 67 | Jis rodomas, jei nuoroda buvo nutraukta. |
EADV | 68 | Jis rodomas dėl reklamos klaidos. |
ESRMNT | 69 | Jis rodomas dėl Srmount klaidos. |
ECOMM | 70 | Jis rodomas, jei siunčiant įvyko ryšio klaida. |
EPROTO | 71 | Jis rodomas dėl protokolo klaidos. |
EMULTIHOP | 72 | Jis rodomas bandant Multihop. |
EDOTDOT | 73 | Jis rodomas dėl specifinės RFS klaidos. |
EBADMSG | 74 | Jis rodomas esant blogam pranešimui. |
EOVERFLOW | 75 | Jis rodomas, jei reikšmė yra per didelė apibrėžtam duomenų tipui. |
ENOTUNIQ | 76 | Jis rodomas, jei tinkle pavadinimas nėra unikalus. |
EBADFD | 77 | Jis rodomas, jei failo deskriptorius yra blogos būklės. |
EREMCHG | 78 | Jis rodomas, jei pakeičiamas nuotolinis adresas. |
ELIBACC | 79 | Jis rodomas, jei negalime pasiekti reikiamos bendrinamos bibliotekos. |
ELIBADAS | 80 | Jis rodomas prisijungus prie sugadintos bendrinamos bibliotekos. |
ELIBSCN | 81 | Jis rodomas, jei a.out yra sugadintas .lib skyrius. |
ELIBMAX | 82 | Jis rodomas, jei bandome susieti per daug bendrinamų bibliotekų. |
ELIBEXEC | 83 | Jis rodomas, jei negalime tiesiogiai vykdyti bendrinamos bibliotekos. |
EILSEQ | 84 | Rodomas neteisingas arba neužbaigtas kelių baitų arba platus simbolis |
ERESTART | 85 | Jis rodomas informuojant, kad nutrauktas sistemos skambutis turi būti paleistas iš naujo. |
ESTRPIPE | 86 | Jis rodomas, jei yra srauto vamzdžio klaida. |
VARTOTOJAI | 87 | Jis rodomas per daug vartotojų. |
ENOTSOCK | 88 | Jis rodomas, kai lizdas veikia be lizdo. |
EDESTADDRREQ | 89 | Jis rodomas, jei reikia nurodyti paskirties adresą. |
EMSGSIZE | 90 | Jis rodomas, jei pranešimas yra per ilgas. |
EPROTOTIPAS | 91 | Jis rodomas, jei protokolas yra netinkamo tipo lizdui. |
ENOPROTOOPT | 92 | Jis rodomas, jei protokolas nepasiekiamas. |
EPROTONOSPARAMA | 93 | Jis rodomas, jei protokolas nepalaikomas. |
ESOCKTNOSUPPORT | 94 | Jis rodomas, jei Socket tipas nepalaikomas. |
EOPNOTSUPP | 95 | Jis rodomas, jei operacija nepalaikoma. |
EPFNOSPARAMA | 96 | Jis rodomas, jei protokolų šeima nepalaikoma. |
EAFNOPPORT | 97 | Jis rodomas, jei adresų šeima nepalaiko protokolo. |
EADDRINUS | 98 | Jis rodomas, jei adresas jau naudojamas. |
EADDRNEPRIEIGA | 99 | Jis rodomas, jei sistema negali priskirti prašomo adreso. |
ENETDOWN | 100 | Jis rodomas, jei tinklas neveikia. |
ENETUNREACH | 101 | Jis rodomas, jei tinklas nepasiekiamas. |
ENETRESET | 102 | Jis rodomas, jei tinklo ryšys nutrūko iš naujo nustatant. |
ECONABORTAS | 103 | Jis rodomas, jei dėl programinės įrangos nutrūko ryšys. |
ECONNRESET | 104 | Jis rodomas, jei ryšį iš naujo nustato bendraamžis. |
ENOBUFS | 105 | Jis rodomas, jei nėra laisvos buferio vietos. |
ESKON | 106 | Jis rodomas, jei transportavimo galinis taškas jau prijungtas. |
ENOTCONN | 107 | Jis rodomas, jei transportavimo galinis taškas nėra prijungtas. |
IŠJUNGTI | 108 | Jis rodomas, jei sistema negali siųsti po transportavimo galinio taško išjungimo. |
ETOOMANYREFS | 109 | Jis rodomas, jei yra per daug nuorodų: negalima sujungti. |
LAIKAS | 110 | Jis rodomas, jei baigėsi ryšio laikas. |
ATSAKOMAS | 111 | Jis rodomas, jei atsisakoma prisijungti. |
EHOSTDAUNAS | 112 | Jis rodomas, jei pagrindinis kompiuteris neveikia. |
EHOSTUNREACH | 113 | Jis rodomas, jei nėra maršruto į prieglobą. |
JAU | 114 | Jis rodomas, jei operacija jau vykdoma. |
KIEKVIENA PAŽANGA | 115 | Jis rodomas, jei dabar vykdoma operacija. |
SPAUSKITE | 116 | Jis rodomas pasenusio failo rankena. |
EUCLEAN | 117 | Jis rodomas, jei konstrukciją reikia išvalyti. |
UNIFORMA | 118 | Jis rodomas ne XENIX tipo faile. |
ENAVAIL | 119 | Jis rodomas, jei nėra XENIX semaforų. |
EISNAM | 120 | Jis rodomas, jei yra pavadinto tipo failas. |
EREMOTIO | 121 | Rodoma nuotolinio įvesties/išvesties klaidai. |
EDQUOT | 122 | Jis rodomas, jei viršijama disko kvota. |
ENOMEDIUM | 123 | Jis rodomas, jei nerasta laikmena. |
EMEDIUMTIPAS | 124 | Jis rodomas, jei yra neteisingas terpės tipas. |
ATŠAUKTA | 125 | Jis rodomas, jei operacija atšaukta. |
ENOKEY | 126 | Jis rodomas, jei reikiamo rakto nėra. |
EKEY BAIGĖSI | 127 | Jis rodomas, jei baigėsi rakto galiojimo laikas. |
EKEY ATŠAUKTA | 128 | Jis rodomas, jei raktas buvo atšauktas. |
EKEYATMESTAS | 129 | Jis rodomas, jei raktas buvo atmestas serviso metu. |
EOWNERDEAD | 130 | Jis rodomas, jei savininkas mirė. |
NEGALIMA | 131 | Rodoma, kad nėra atkuriamos būsenos. |
ERFKILL | 132 | Jis rodomas, jei operacija neįmanoma dėl RF-kill. |
EHWPOISON | 133 | Jis rodomas, jei atminties puslapyje yra aparatinės įrangos klaida. |