Linux kodovi pogrešaka su oni kodovi koji se prikazuju ako se pojavi greška u sustavu tijekom rada ili korištenja programa. Pogreške se mogu prepoznati uz pomoć kodova grešaka. Kodovi pogrešaka pomažu nam u prepoznavanju izvora pogreške.
Ako radimo na Linux sustavu, očito je da možemo naići na pogreške. Neke pogreške mogu biti manje i ne moraju dovesti do prekida programa. Ali mogu postojati neke pogreške koje mogu uzrokovati prestanak reagiranja sustava ili programa. Ove pogreške mogu dovesti do gubitka podataka ili mogu spriječiti dovršetak programa. Uglavnom se pogreške prikazuju u obliku kodova ili poruka.
U ovom odjeljku vidjet ćemo pogreške u C programiranju i popis mogućih pogrešaka u Linux sustav.
Linux greške u C programiranju
Vješt programer trebao bi znati kako se nositi s pogreškama. Programski jezik C ne pruža izravnu podršku za obradu grešaka. Moramo otkriti izvor pogreške i riješiti je. U jeziku C, povratne vrijednosti prikazuju neuspjeh ili uspjeh. Ako funkcija u C programu ne uspije, moramo postupiti s greškom u skladu s tim; inače bilježi posljednje pogreške u datoteku dnevnika.
Dok izvršavamo C programe, mogli bismo primijetiti neke brojeve pogrešaka kao što je 'Broj pogreške je: 17'. Ovdje greška broj 17 znači da datoteka već postoji. Svaki broj greške ima neko značenje.
Jezik C podržava varijablu 'greška .' Korištenjem ove varijable broja pogreške, možemo koristiti neke funkcije za rukovanje pogreškama kako bismo je pravilno obradili.
Za korištenje vanjske varijable broj pogreške, moramo uključiti datoteku zaglavlja 'greška.h.' Datoteka zaglavlja koristi se za definiranje varijable 'errno'. Varijabla errno postavljena je pozivima sustava i funkcijama knjižnice u pojavi pogreške. Dvije su važne funkcije u C programski jezik nositi se s pogreškama; užas i strerror . Funkcija perror koristi se za ispis opisa pogreške, a funkcija sterror vraća niz s kodom pogreške.
Prikažimo popis kodova grešaka pomoću errno.
Linux pogreška
Uslužni program errno koristi se za traženje errno kodova, naziva makronaredbi i odgovarajućih opisa. Na primjer, ako pružimo ENOENT na Linux sustavu, on će prikazati kod 2 i opis ' Nema takve datoteke ili direktorija .' Ako damo kod 2, on će prikazati ENOENT i njegov opis .
Ako uslužni program errno nije instaliran na našem računalu, prikazat će pogrešku na sljedeći način:
Da biste ga instalirali, izvršite naredbu u nastavku:
sudo apt install moreutils
Izvršavanjem gornje naredbe, paket moreutils se instalira na našem računalu koji sadrži uslužni program errno.
Prikaz popisa kodova grešaka
Za prikaz popisa kodova grešaka, izvršite naredbu na sljedeći način:
errno -l
Gornja naredba prikazat će popis kodova grešaka RedHat-a. Razmotrite donji izlaz:
Prikažite informacije o broju greške
Za prikaz informacija o određenom broju pogreške, izvršite naredbu na sljedeći način:
errno 2
Gornja naredba prikazat će opis pogreške broj 2. Razmotrite donji izlaz:
Prikaži informacije o nazivu pogreške
Za prikaz informacija o određenom nazivu pogreške, izvršite naredbu errno, nakon koje slijedi naziv pogreške. Na primjer, za prikaz informacija o nazivu pogreške 'ESRCH ,' izvršite naredbu na sljedeći način:
errno ESRCH
Gornja naredba prikazat će informacije o navedenom nazivu pogreške. Razmotrite donji izlaz:
Prikažite pogrešku pomoću nizova
Za prikaz opisa pogreške korištenjem niza iz opisa, izvršite naredbu na sljedeći način:
errno -s permission
Gornja naredba prikazat će pogreške čiji opis sadrži dozvolu niza. Razmotrite donji izlaz:
Popis grešaka sustava Linux
Slijedi djelomičan popis mogućih grešaka Linux sustava:
Kod pogreške | greška br | Opis |
---|---|---|
Gornji | 1 | Prikazuje se ako radnja nije dopuštena. |
ENOENT | 2 | Prikazuje se ako takva datoteka ne postoji ili direktorij postoji. |
ESRCH | 3 | Prikazuje se ako ne postoji takav proces. |
EINTR | 4 | Prikazuje se za prekinut sistemski poziv |
EIO | 5 | Prikazuje se za grešku ulaza/izlaza. |
ENXIO | 6 | Prikazuje se ako takav uređaj ne postoji ili adresa postoji. |
E2BIG | 7 | Prikazuje se ako je popis argumenata predug. |
ENOEXEC | 8 | Prikazuje se ako postoji pogreška exec formata |
EBADF | 9 | Prikazuje se u slučaju lošeg deskriptora datoteke. |
ECHILD | 10 | Prikazuje se ako ne postoji podređeni proces. |
OPET | jedanaest | Prikazuje se ako je resurs privremeno nedostupan. |
ENOMEM | 12 | Prikazuje se ako sustav ne može dodijeliti memoriju. |
EACCES | 13 | Prikazuje se ako je dopuštenje odbijeno. |
GREŠKA | 14 | Prikazuje se ako postoji pogrešna adresa. |
ENOTBLK | petnaest | Prikazuje se ako je potreban Blokiraj uređaj. |
ZAPOSLEN | 16 | Prikazuje se ako je uređaj ili resurs zauzet. |
POSTOJI | 17 | Prikazuje se ako datoteka već postoji. |
EXDEV | 18 | Prikazuje se ako postoji nevažeća veza između uređaja. |
ENODEV | 19 | Prikazuje se ako takav uređaj ne postoji. |
ENOTDIR | dvadeset | Prikazuje se ako ne postoji imenik. |
EISDIR | dvadeset i jedan | Prikazuje se ako postoji imenik. |
JEDAN IZBOR | 22 | Prikazuje se ako postoji nevažeći argument. |
STAVITI NA | 23 | Prikazuje se ako u sustavu ima previše otvorenih datoteka. |
MRTAV | 24 | Prikazuje se ako ima previše otvorenih datoteka. |
ENOTTY | 25 | Prikazuje se ako postoji neodgovarajući ioctl za uređaj. |
ETXTBSY | 26 | Prikazuje se ako je tekstualna datoteka zauzeta. |
EFBIG | 27 | Prikazuje se ako je datoteka prevelika. |
ENOSPC | 28 | Prikazuje se ako na uređaju nema više mjesta. |
ESPIPE | 29 | Prikazuje se u slučaju nezakonitog traženja. |
EROFS | 30 | Prikazuje se u slučaju datotečnog sustava samo za čitanje. |
EMLINK | 31 | Prikazuje se ako ima previše veza. |
EPIPE | 32 | Prikazuje se u slučaju puknuća cijevi. |
EDOM | 33 | Prikazuje se ako je numerički argument izvan domene. |
ERANGE | 3. 4 | Prikazuje se ako je brojčani rezultat izvan raspona. |
EDEADLK | 35 | Prikazuje se ako je izbjegnut zastoj resursa. |
ENAMETOOLONG | 36 | Prikazuje se ako je naziv datoteke predug. |
ENOLCK | 37 | Prikazuje se ako nema dostupnih brava. |
ENOSYS | 38 | Prikazuje se ako funkcija nije implementirana. |
ENOTEMPTY | 39 | Prikazuje se ako imenik nije prazan. |
ELOOP | 40 | Prikazuje se ako postoji previše razina simboličkih veza. |
ENOMSG | 42 | Prikazuje se ako nema poruke željenog tipa. |
EIDRM | 43 | Prikazuje se ako se identifikator ukloni. |
ECHRNG | 44 | Prikazuje se ako je broj kanala izvan raspona. |
EL2NSYNC | Četiri pet | Prikazuje se ako razina 2 nije sinkronizirana. |
EL3HLT | 46 | Prikazuje se ako je razina 3 zaustavljena. |
EL3RST | 47 | Prikazuje se ako je razina 3 resetirana. |
ELNRNG | 48 | Prikazuje se ako je broj veze izvan raspona. |
EUNATCH | 49 | Prikazuje se ako upravljački program protokola nije priključen. |
ENOCSI | pedeset | Prikazuje se ako nema dostupne CSI strukture. |
EL2HLT | 51 | Prikazuje se ako je razina 2 zaustavljena. |
BILO JE | 52 | Prikazuje se u slučaju nevaljane zamjene. |
EBADR | 53 | Prikazuje se u slučaju nevažećeg deskriptora zahtjeva. |
IZVRSNO | 54 | Prikazuje se ako je burza puna. |
ENOANO | 55 | Prikazuje se u slučaju Nema anode. |
EBADRQC | 56 | Prikazuje se za nevažeći kod zahtjeva. |
EBADSLT | 57 | Prikazuje se za nevažeći utor. |
EBFONT | 59 | Prikazuje se ako postoji loš format datoteke fonta. |
JEDNOSTRAN | 60 | Prikazuje se ako uređaj nije stream. |
ENODATA | 61 | Prikazuje se ako nema dostupnih podataka. |
EVRIJEME | 62 | Prikazuje se u slučaju da tajmer istekne. |
ENOSR | 63 | Prikazuje se u slučaju resursa izvan tokova. |
ENONET | 64 | Prikazuje se ako uređaj nije na mreži. |
ENOPKG | 65 | Prikazuje se ako paket nije instaliran. |
EREMOTE | 66 | Prikazuje se ako je objekt udaljen. |
ENOLINK | 67 | Prikazuje se ako je veza prekinuta. |
EADV | 68 | Prikazuje se za grešku oglašavanja. |
ESRMNT | 69 | Prikazuje se za pogrešku Srmount. |
ECOMM | 70 | Prikazuje se ako je došlo do pogreške u komunikaciji pri slanju. |
EPROTO | 71 | Prikazuje se za grešku protokola. |
EMULTIHOP | 72 | Prikazuje se za pokušaj višestrukog skoka. |
EDOTDOT | 73 | Prikazuje se za RFS specifičnu pogrešku. |
EBADMSG | 74 | Prikazuje se za lošu poruku. |
IZVJEDNO PRELJEVANJE | 75 | Prikazuje se ako je vrijednost prevelika za definirani tip podataka. |
ENOTUNIQ | 76 | Prikazuje se ako ime nije jedinstveno na mreži. |
EBADFD | 77 | Prikazuje se ako je deskriptor datoteke u lošem stanju. |
EREMCHG | 78 | Prikazuje se ako se promijeni udaljena adresa. |
ELIBACC | 79 | Prikazuje se ako ne možemo pristupiti potrebnoj zajedničkoj biblioteci. |
ELIBBAD | 80 | Prikazuje se u slučaju pristupanja oštećenoj dijeljenoj biblioteci. |
ELIBSCN | 81 | Prikazuje se ako postoji odjeljak .lib u a.out je oštećen. |
ELIBMAX | 82 | Prikazuje se ako se pokušavamo povezati u previše zajedničkih biblioteka. |
ELIBEXEC | 83 | Prikazuje se ako ne možemo izravno izvršiti dijeljenu biblioteku. |
EILSEQ | 84 | Prikazuje se za nevažeći ili nepotpuni višebajtni ili široki znak |
ERESTART | 85 | Prikazuje se kao obavijest da treba ponovno pokrenuti prekinuti poziv sustava. |
ESTRPIPE | 86 | Prikazuje se ako postoji pogreška cijevi tokova. |
EUUSERS | 87 | Prikazuje se za previše korisnika. |
ENOTSOCK | 88 | Prikazuje se za rad utičnice na ne-utičnici. |
EDESTADDRREQ | 89 | Prikazuje se ako je potrebna odredišna adresa. |
EMSGSIZE | 90 | Prikazuje se ako je poruka preduga. |
EPROTOTIP | 91 | Prikazuje se ako je vrsta protokola pogrešna za utičnicu. |
ENOPROTOOPT | 92 | Prikazuje se ako protokol nije dostupan. |
EPROTONOSUPPORT | 93 | Prikazuje se ako protokol nije podržan. |
ESOCKTNOSUPPORT | 94 | Prikazuje se ako vrsta utičnice nije podržana. |
EOPNOTSUPP | 95 | Prikazuje se ako Operacija nije podržana. |
EPFNOSUPPORT | 96 | Prikazuje se ako obitelj protokola nije podržana. |
EAFNOSUPPORT | 97 | Prikazuje se ako familija adresa nije podržana protokolom. |
EADDRINUS | 98 | Prikazuje se ako je adresa već u upotrebi. |
EADDRNOTAVAIL | 99 | Prikazuje se ako sustav ne može dodijeliti traženu adresu. |
ENETDOWN | 100 | Prikazuje se ako je mreža u prekidu. |
ENETUNREACH | 101 | Prikazuje se ako je mreža nedostupna. |
ENETRESET | 102 | Prikazuje se ako je mreža prekinula vezu pri resetiranju. |
ECONNABORTED | 103 | Prikazuje se ako je softver uzrokovao prekid veze. |
RECONNRESET | 104 | Prikazuje se ako ravnopravni uređaj poništi vezu. |
ENOBUFS | 105 | Prikazuje se ako nema dostupnog međuspremnika. |
ESKON | 106 | Prikazuje se ako je krajnja točka prijenosa već povezana. |
ENOTCONN | 107 | Prikazuje se ako krajnja točka prijenosa nije povezana. |
ISKLJUČIVANJE | 108 | Prikazuje se ako sustav ne može poslati nakon isključivanja krajnje točke prijenosa. |
ETOOMANYREFS | 109 | Prikazuje se ako ima previše referenci: spajanje nije moguće. |
ETIMEDOUT | 110 | Prikazuje se ako je veza istekla. |
ECONNROFUSED | 111 | Prikazuje se ako je veza odbijena. |
EHOSTDOWN | 112 | Prikazuje se ako host ne radi. |
EHOSTUNREACH | 113 | Prikazuje se ako ne postoji ruta do hosta. |
VEĆ | 114 | Prikazuje se ako je operacija već u tijeku. |
SVAKI NAPREDAK | 115 | Prikazuje se ako je operacija sada u tijeku. |
KLIK | 116 | Prikazuje se za rukovanje ustajalom datotekom. |
EUČISTA | 117 | Prikazuje se ako je strukturi potrebno čišćenje. |
UNIFORMA | 118 | Prikazuje se za datoteku tipa koja nije XENIX. |
DOSTUPAN | 119 | Prikazuje se ako nema dostupnih XENIX semafora. |
EISNAM | 120 | Prikazuje se ako postoji datoteka imenovanog tipa. |
EREMOTIO | 121 | Prikazuje se za pogrešku daljinskog ulaza/izlaza. |
EDQUOT | 122 | Prikazuje se ako je diskovna kvota premašena. |
ENOMEDIJ | 123 | Prikazuje se ako nije pronađen nijedan medij. |
EMEDIUMTYPE | 124 | Prikazuje se ako postoji pogrešna vrsta medija. |
PONIŠTENO | 125 | Prikazuje se ako je operacija otkazana. |
ENOKEY | 126 | Prikazuje se ako traženi ključ nije dostupan. |
EKEY ISTEKAO | 127 | Prikazuje se ako je ključ istekao. |
EKEY REVOKED | 128 | Prikazuje se ako je ključ opozvan. |
EKEY REJECTED | 129 | Prikazuje se ako je servis odbio ključ. |
EVLASNIK MRTAV | 130 | Prikazuje se ako je vlasnik umro. |
ENOTOPONAVLJIV | 131 | Prikazuje se za stanje koje se ne može oporaviti. |
ERFKILL | 132 | Prikazuje se ako operacija nije moguća zbog RF-kill. |
EHWOTRIV | 133 | Prikazuje se ako memorijska stranica ima hardversku pogrešku. |