Kode napak Linuxa so tiste kode, ki se prikažejo, če pride do napake v sistemu med delom ali uporabo programa. Napake je mogoče prepoznati s pomočjo kod napak. Kode napak nam pomagajo prepoznati vir napake.
Če delamo na sistemu Linux, je očitno, da lahko naletimo na napake. Nekatere napake so lahko manjše in ne smejo povzročiti prekinitve programa. Lahko pa pride do nekaterih napak, zaradi katerih se sistem ali program neha odzivati. Te napake lahko povzročijo izgubo podatkov ali preprečijo dokončanje programa. Večinoma so napake prikazane v obliki kod ali sporočil.
V tem razdelku bomo videli napake v programiranju C in seznam možnih napak v Linux sistem.
Linux napake pri programiranju C
Spreten programer bi moral znati ravnati z napakami. Programski jezik C ne zagotavlja neposredne podpore za obravnavanje napak. Odkriti moramo izvor napake in jo odpraviti. V jeziku C vrnjene vrednosti prikazujejo neuspeh ali uspeh. Če funkcija v programu C odpove, moramo napako ustrezno obravnavati; drugače zapiše napake nazadnje v dnevniško datoteko.
Med izvajanjem programov C lahko opazimo nekaj številk napak, kot je 'Št. napake je: 17'. Tu napaka št. 17 pomeni, da datoteka že obstaja. Vsaka številka napake ima nek pomen.
Jezik C podpira spremenljivko 'napaka .' Z uporabo te spremenljivke številke napake lahko uporabimo nekatere funkcije za obravnavo napak, da jih pravilno obravnavamo.
Za uporabo zunanje številke napake spremenljivke moramo vključiti datoteko glave 'napaka.h.' Datoteka glave se uporablja za definiranje spremenljivke 'errno'. Spremenljivko errno nastavijo sistemski klici in funkcije knjižnice ob pojavu napake. Obstajata dve pomembni funkciji v Programski jezik C obravnavati napake; groza in strerror . Funkcija perror se uporablja za tiskanje opisa napake, funkcija sterror pa vrne niz s kodo napake.
Prikažimo seznam kod napak z uporabo errno.
Linux napaka
Pripomoček errno se uporablja za iskanje kod errno, imen makrov in ustreznih opisov. Na primer, če zagotovimo ENOENT v sistemu Linux, bo prikazal kodo 2 in opis ' Ni takšne datoteke ali imenika .' Če podamo kodo 2, bo prikazana ENOENT in njegov opis .
Če pripomoček errno ni nameščen na našem računalniku, bo prikazal napako, kot sledi:
Če ga želite namestiti, izvedite spodnji ukaz:
sudo apt install moreutils
Z izvedbo zgornjega ukaza se na naš računalnik namesti paket moreutils, ki vsebuje pripomoček errno.
Prikažite seznam kod napak
Za prikaz seznama kod napak izvedite ukaz na naslednji način:
errno -l
Zgornji ukaz bo prikazal seznam kod napak RedHat. Razmislite o spodnjem rezultatu:
Prikažite informacije o številki napake
Če želite prikazati informacije o določeni številki napake, izvedite ukaz na naslednji način:
errno 2
Zgornji ukaz bo prikazal opis napake številka 2. Razmislite o spodnjem rezultatu:
Prikaži informacije o imenu napake
Za prikaz informacij o določenem imenu napake izvedite ukaz errno, ki mu sledi ime napake. Na primer za prikaz informacij o imenu napake 'ESRCH ,' izvedite ukaz na naslednji način:
errno ESRCH
Zgornji ukaz bo prikazal informacije o navedenem imenu napake. Razmislite o spodnjem rezultatu:
Prikažite napako z nizi
Če želite prikazati opis napake z uporabo niza iz opisa, izvedite ukaz na naslednji način:
errno -s permission
Zgornji ukaz bo prikazal napake, katerih opis vsebuje dovoljenje za niz. Razmislite o spodnjem rezultatu:
Seznam sistemskih napak Linux
Sledi delni seznam možnih napak sistema Linux:
Napačna koda | napaka št | Opis |
---|---|---|
Zgornji | 1 | Prikaže se, če operacija ni dovoljena. |
ENOENT | 2 | Prikaže se, če take datoteke ni ali imenik obstaja. |
ESRCH | 3 | Prikaže se, če tak postopek ne obstaja. |
EINTR | 4 | Prikaže se za prekinjen sistemski klic |
EPN | 5 | Prikaže se za napako pri vhodu/izhodu. |
ENXIO | 6 | Prikaže se, če takšne naprave ni ali naslov obstaja. |
E2BIG | 7 | Prikaže se, če je seznam argumentov predolg. |
ENOEXEC | 8 | Prikaže se, če je prišlo do napake formata exec |
EBADF | 9 | Prikaže se v primeru slabega deskriptorja datoteke. |
ECHILD | 10 | Prikaže se, če ne obstaja podrejeni proces. |
SPET | enajst | Prikaže se, če vir začasno ni na voljo. |
ENOMEM | 12 | Prikaže se, če sistem ne more dodeliti pomnilnika. |
EACCES | 13 | Prikaže se, če je dovoljenje zavrnjeno. |
NAPAKA | 14 | Prikaže se, če je naslov napačen. |
ENOTBLK | petnajst | Prikaže se, če je zahtevana Blokiraj napravo. |
ZASEDEN | 16 | Prikaže se, če je naprava ali vir zaseden. |
OBSTAJA | 17 | Prikaže se, če datoteka že obstaja. |
EXDEV | 18 | Prikaže se, če obstaja neveljavna povezava med napravami. |
ENODEV | 19 | Prikaže se, če take naprave ni. |
ENOTDIR | dvajset | Prikaže se, če ni imenika. |
EISDIR | enaindvajset | Prikaže se, če obstaja imenik. |
ENOTNA IZBIRA | 22 | Prikaže se, če obstaja neveljaven argument. |
OBLEČI | 23 | Prikaže se, če je v sistemu preveč odprtih datotek. |
MRTEV | 24 | Prikaže se, če je odprtih datotek preveč. |
ENOTTY | 25 | Prikaže se, če obstaja neustrezen ioctl za napravo. |
ETXTBSY | 26 | Prikaže se, če je besedilna datoteka zasedena. |
EFBIG | 27 | Prikaže se, če je datoteka prevelika. |
ENOSPC | 28 | Prikaže se, če na napravi ni več prostora. |
ESPIPE | 29 | Prikaže se v primeru nezakonitega iskanja. |
EROFS | 30 | Prikaže se v primeru datotečnega sistema samo za branje. |
EMLINK | 31 | Prikaže se, če je povezav preveč. |
EPIPE | 32 | Prikaže se v primeru počene cevi. |
EDOM | 33 | Prikaže se, če je številski argument izven domene. |
ERANGE | 3. 4 | Prikaže se, če je številski rezultat izven obsega. |
EDEADLK | 35 | Prikaže se, če se izognete zastoju vira. |
ENAMETOOLONG | 36 | Prikaže se, če je ime datoteke predolgo. |
ENOLCK | 37 | Prikaže se, če ni na voljo nobena ključavnica. |
ENOSYS | 38 | Prikaže se, če funkcija ni implementirana. |
ENOTEMPTY | 39 | Prikaže se, če imenik ni prazen. |
ELOOP | 40 | Prikaže se, če je ravni simbolnih povezav preveč. |
ENOMSG | 42 | Prikaže se, če ni sporočila želene vrste. |
EIDRM | 43 | Prikaže se, če je identifikator odstranjen. |
ECHRNG | 44 | Prikaže se, če je številka kanala izven obsega. |
EL2NSYNC | Štiri | Prikaže se, če stopnja 2 ni sinhronizirana. |
EL3HLT | 46 | Prikaže se, če je stopnja 3 ustavljena. |
EL3RST | 47 | Prikaže se, če je stopnja 3 ponastavljena. |
ELNRNG | 48 | Prikaže se, če je številka povezave izven obsega. |
EUNATCH | 49 | Prikaže se, če gonilnik protokola ni priložen. |
ENOCSI | petdeset | Prikaže se, če ni na voljo nobene strukture CSI. |
EL2HLT | 51 | Prikaže se, če je stopnja 2 ustavljena. |
BILO JE | 52 | Prikaže se v primeru neveljavne menjave. |
EBADR | 53 | Prikaže se v primeru neveljavnega deskriptorja zahteve. |
POLNO | 54 | Prikaže se, če je menjava polna. |
ENOANO | 55 | Prikaže se, če ni anode. |
EBADRQC | 56 | Prikaže se za neveljavno kodo zahteve. |
EBADSLT | 57 | Prikaže se za neveljavno režo. |
EBFONT | 59 | Prikaže se, če obstaja napačna oblika datoteke pisave. |
ENOSTR | 60 | Prikaže se, če naprava ni tok. |
ENODATA | 61 | Prikaže se, če podatki niso na voljo. |
ETIME | 62 | Prikaže se, če je časovnik potekel. |
ENOSR | 63 | Prikaže se v primeru virov izven tokov. |
ENONET | 64 | Prikaže se, če naprava ni v omrežju. |
ENOPKG | 65 | Prikaže se, če paket ni nameščen. |
EREMOTE | 66 | Prikaže se, če je objekt oddaljen. |
ENOLINK | 67 | Prikaže se, če je bila povezava prekinjena. |
EADV | 68 | Prikaže se za napako pri oglaševanju. |
ESRMNT | 69 | Prikaže se za napako Srmount. |
ECOMM | 70 | Prikaže se, če je pri pošiljanju prišlo do napake v komunikaciji. |
EPROTO | 71 | Prikaže se za napako protokola. |
EMULTIHOP | 72 | Prikaže se za poskus Multihop. |
EDOTDOT | 73 | Prikaže se za specifično napako RFS. |
EBADMSG | 74 | Prikaže se za slabo sporočilo. |
ENOVERFLOW | 75 | Prikaže se, če je vrednost prevelika za določen tip podatkov. |
ENOTUNIQ | 76 | Prikaže se, če ime ni edinstveno v omrežju. |
EBADFD | 77 | Prikaže se, če je deskriptor datoteke v slabem stanju. |
EREMCHG | 78 | Prikaže se, če se spremeni oddaljeni naslov. |
ELIBACC | 79 | Prikaže se, če ne moremo dostopati do potrebne knjižnice v skupni rabi. |
ELIBBAD | 80 | Prikaže se v primeru dostopa do poškodovane knjižnice v skupni rabi. |
ELIBSCN | 81 | Prikaže se, če je razdelek .lib v a.out poškodovan. |
ELIBMAX | 82 | Prikaže se, če se poskušamo povezati v preveč knjižnicah v skupni rabi. |
ELIBEXEC | 83 | Prikaže se, če knjižnice v skupni rabi ne moremo neposredno izvesti. |
EILSEQ | 84 | Prikaže se za neveljaven ali nepopoln večbajtni ali široki znak |
ERESTART | 85 | Prikaže se kot sporočilo, da je treba prekinjeni sistemski klic znova zagnati. |
ESTRPIPE | 86 | Prikaže se, če pride do napake cevi tokov. |
EUUSERS | 87 | Prikaže se za preveč uporabnikov. |
ENOTSOCK | 88 | Prikaže se za delovanje vtičnice na ne-vtičnici. |
EDESTADDRREQ | 89 | Prikaže se, če je zahtevan ciljni naslov. |
EMSGSIZE | 90 | Prikaže se, če je sporočilo predolgo. |
EPROTOTIP | 91 | Prikaže se, če je protokol napačne vrste za vtičnico. |
ENOPROTOOPT | 92 | Prikaže se, če protokol ni na voljo. |
EPROTONOSUPPORT | 93 | Prikaže se, če protokol ni podprt. |
ESOCKTNOSUPPORT | 94 | Prikaže se, če vrsta vtičnice ni podprta. |
EOPNOTSUPP | 95 | Prikaže se, če operacija ni podprta. |
EPFNOSUPPORT | 96 | Prikaže se, če družina protokolov ni podprta. |
EAFNOSUPPORT | 97 | Prikaže se, če družina naslovov ni podprta s protokolom. |
EADDRINUS | 98 | Prikaže se, če je naslov že v uporabi. |
EADDRNOTAVAIL | 99 | Prikaže se, če sistem ne more dodeliti zahtevanega naslova. |
ENETDOWN | 100 | Prikaže se, če omrežje ne deluje. |
ENETUNREACH | 101 | Prikaže se, če omrežje ni dosegljivo. |
ENETRESET | 102 | Prikaže se, če je omrežje ob ponastavitvi prekinilo povezavo. |
ECONNABORTED | 103 | Prikaže se, če je programska oprema povzročila prekinitev povezave. |
PONASTAV | 104 | Prikaže se, če vrstnik ponastavi povezavo. |
ENOBUFS | 105 | Prikaže se, če ni na voljo prostora v medpomnilniku. |
ESKON | 106 | Prikaže se, če je transportna končna točka že povezana. |
ENOTCONN | 107 | Prikaže se, če transportna končna točka ni povezana. |
IZKLOP | 108 | Prikaže se, če sistem ne more pošiljati po zaustavitvi transportne končne točke. |
ETOOMANYREFS | 109 | Prikaže se, če je referenc preveč: spajanje ni mogoče. |
ETIMEDOUT | 110 | Prikaže se, če je povezava potekla. |
ECONNREFUSED | 111 | Prikaže se, če je povezava zavrnjena. |
EHOSTDOWN | 112 | Prikaže se, če gostitelj ne deluje. |
EHOSTUNREACH | 113 | Prikaže se, če ni poti do gostitelja. |
ŽE | 114 | Prikaže se, če operacija že poteka. |
VSAK NAPREDEK | 115 | Prikaže se, če je operacija trenutno v teku. |
KLIK | 116 | Prikaže se za ročaj zastarele datoteke. |
EUCLEAN | 117 | Prikaže se, če je treba strukturo očistiti. |
ENOTNAM | 118 | Prikaže se za datoteko z imenom, ki ni XENIX. |
ENAVAIL | 119 | Prikaže se, če ni na voljo nobenega semaforja XENIX. |
EISNAM | 120 | Prikaže se, če obstaja datoteka z imenovano vrsto. |
EREMOTIO | 121 | Prikaže se za napako oddaljenega V/I. |
EDQUOT | 122 | Prikaže se, če je diskovna kvota presežena. |
ENOMEDIJ | 123 | Prikaže se, če medij ni najden. |
EMEDIUMTYPE | 124 | Prikaže se, če obstaja napačna vrsta medija. |
PREKLICANO | 125 | Prikaže se, če je operacija preklicana. |
ENOKEY | 126 | Prikaže se, če zahtevani ključ ni na voljo. |
EKEY PRETEK | 127 | Prikaže se, če je ključ potekel. |
EKEY PREKLICAN | 128 | Prikaže se, če je bil ključ preklican. |
EKEY ZAVRNJENO | 129 | Prikaže se, če je servis zavrnil ključ. |
EOWNERDEAD | 130 | Prikaže se, če je lastnik mrtev. |
ENOTOBNOVLJIV | 131 | Prikaže se za stanje, ki ga ni mogoče obnoviti. |
ERFKILL | 132 | Prikaže se, če operacija ni mogoča zaradi RF-kill. |
EHWSTRUP | 133 | Prikaže se, če ima pomnilniška stran napako strojne opreme. |