Linux-virhekoodit ovat niitä koodeja, jotka näytetään, jos järjestelmässä tapahtuu virhe työskennellessä tai ohjelmaa käytettäessä. Virheet voidaan tunnistaa virhekoodien avulla. Virhekoodit auttavat meitä tunnistamaan virheen lähteen.
Jos työskentelemme Linux-järjestelmän parissa, on selvää, että saatamme kohdata virheitä. Jotkut virheet voivat olla vähäisiä eivätkä välttämättä aiheuta ohjelman keskeytyksiä. Mutta jotkin virheet voivat saada järjestelmän tai ohjelman lakkaamaan vastaamasta. Nämä virheet voivat johtaa tietojen menetykseen tai estää ohjelman valmistumisen. Useimmiten virheet näkyvät koodien tai viestien muodossa.
Tässä osiossa näemme C-ohjelmoinnin virheet ja luettelon mahdollisista virheistä Linux järjestelmä.
Linux-virheet C-ohjelmoinnissa
Ammattitaitoisen ohjelmoijan tulee osata käsitellä virheitä. C-ohjelmointikieli ei tarjoa suoraa tukea virheiden käsittelyyn. Meidän on löydettävä virheen lähde ja puututtava siihen. C-kielellä palautusarvot osoittavat epäonnistumisen tai onnistumisen. Jos jokin C-ohjelman funktio epäonnistuu, meidän on käsiteltävä virhe vastaavasti; muuten se tallentaa virheet lokitiedostoon viimeiseksi.
C-ohjelmia suoritettaessa saatamme havaita virhenumeroita, kuten 'Virhenumero on: 17'. Tässä virhe nro 17 tarkoittaa, että tiedosto on jo olemassa. Jokaisella virhenumerolla on jokin merkitys.
C-kieli tukee muuttujaa 'virhe .' Käyttämällä tätä virhenumeromuuttujaa voimme käyttää joitain virheenkäsittelytoimintoja käsitelläksemme sitä oikein.
Ulkoisen muuttujan virhenumeron käyttämiseksi meidän on sisällytettävä otsikkotiedosto 'errno.h.' Otsikkotiedostoa käytetään errno-muuttujan määrittämiseen. Errno-muuttujan asettavat järjestelmäkutsut ja kirjastotoiminnot virhetapauksessa. Siinä on kaksi tärkeää toimintoa C-ohjelmointikieli käsitellä virheitä; virhe ja strerror . Perror-funktiota käytetään virheen kuvauksen tulostamiseen ja sterror-funktio palauttaa merkkijonon, jossa on virhekoodi.
Näytetään virhekoodiluettelo käyttämällä errnoa.
Linux virhe
Errno-apuohjelmaa käytetään errno-koodien, makron nimien ja vastaavien kuvausten etsimiseen. Jos esimerkiksi tarjoamme ENOENTin Linux-järjestelmässä, se näyttää koodin 2 ja kuvauksen ' Ei tällaista tiedostoa tai hakemistoa .' Jos annamme koodin 2, se näyttää ENOENT ja sen kuvaus .
Jos errno-apuohjelmaa ei ole asennettu koneellemme, se näyttää virheilmoituksen seuraavasti:
Asenna se suorittamalla alla oleva komento:
sudo apt install moreutils
Suorittamalla yllä oleva komento, moreutils-paketti asennetaan koneellemme, joka sisältää errno-apuohjelman.
Näytä virhekoodien luettelo
Voit näyttää virhekoodien luettelon suorittamalla komennon seuraavasti:
errno -l
Yllä oleva komento näyttää RedHatin virhekoodien luettelon. Harkitse alla olevaa tulosta:
Näytä virhenumeron tiedot
Jos haluat näyttää tietyn virhenumeron tiedot, suorita komento seuraavasti:
errno 2
Yllä oleva komento näyttää virheen numero 2 kuvauksen. Harkitse alla olevaa tulosta:
Näytä virheen nimen tiedot
Jos haluat näyttää tietyn virheen nimen tiedot, suorita komento errno ja sen jälkeen virheen nimi. Esimerkiksi virheen nimen tietojen näyttäminen 'ESRCH , suorita komento seuraavasti:
errno ESRCH
Yllä oleva komento näyttää tiedot määritetystä virhenimestä. Harkitse alla olevaa tulosta:
Näytä virhe merkkijonojen avulla
Jos haluat näyttää virheen kuvauksen käyttämällä kuvauksen merkkijonoa, suorita komento seuraavasti:
errno -s permission
Yllä oleva komento näyttää virheet, joiden kuvaus sisältää merkkijonon käyttöoikeuden. Harkitse alla olevaa tulosta:
Luettelo Linux-järjestelmävirheistä
Seuraavassa on osittainen luettelo Linux-järjestelmän mahdollisista virheistä:
Virhekoodi | virhe nro | Kuvaus |
---|---|---|
Yläosa | 1 | Se näytetään, jos toimintoa ei sallita. |
ENOENT | 2 | Se näytetään, jos tällaista tiedostoa tai hakemistoa ei ole. |
ESRCH | 3 | Se näytetään, jos tällaista prosessia ei ole. |
EINTR | 4 | Se näytetään keskeytetyn järjestelmäpuhelun kohdalla |
EIO | 5 | Se näytetään tulo/lähtövirheen varalta. |
ENXIO | 6 | Se näytetään, jos sellaista laitetta ei ole tai osoitetta ei ole. |
E2BIG | 7 | Se näytetään, jos argumenttiluettelo on liian pitkä. |
ENOEXEC | 8 | Se näytetään, jos kyseessä on exec-muotovirhe |
EBADF | 9 | Se näytetään, jos tiedostokuvaaja on huono. |
LAPSI | 10 | Se näytetään, jos lapsiprosessia ei ole. |
UUDELLEEN | yksitoista | Se näytetään, jos resurssi ei ole tilapäisesti käytettävissä. |
ENOMEM | 12 | Se näkyy, jos järjestelmä ei pysty varaamaan muistia. |
EACCES | 13 | Se näkyy, jos lupa evätään. |
EFAULT | 14 | Se näkyy, jos osoite on väärä. |
ENOTBLK | viisitoista | Se näytetään, jos Estä laite vaaditaan. |
KIIREINEN | 16 | Se näkyy, jos laite tai resurssi on varattu. |
OLEMASSA | 17 | Se näytetään, jos tiedosto on jo olemassa. |
EXDEV | 18 | Se näytetään, jos laitteiden välinen linkki on virheellinen. |
ENODEV | 19 | Se näkyy, jos sellaista laitetta ei ole. |
ENOTDIR | kaksikymmentä | Se näkyy, jos hakemistoa ei ole. |
EISDIR | kaksikymmentäyksi | Se näkyy, jos hakemistoa on. |
YKSI VALINTA | 22 | Se näytetään, jos argumentti on virheellinen. |
LAITA PÄÄLLE | 23 | Se näytetään, jos järjestelmässä on liian monta avointa tiedostoa. |
KUOLLUT | 24 | Se näytetään, jos avoimia tiedostoja on liian monta. |
ENOTTY | 25 | Se näytetään, jos laitteelle on sopimaton ioctl. |
ETXTBSY | 26 | Se näkyy, jos tekstitiedosto on varattu. |
EFBIG | 27 | Se näytetään, jos tiedosto on liian suuri. |
ENOSPC | 28 | Se näkyy, jos laitteessa ei ole tilaa. |
ESPIPE | 29 | Se näytetään laittoman haun yhteydessä. |
EROFS | 30 | Se näytetään vain luku -tiedostojärjestelmän tapauksessa. |
EMLINK | 31 | Se näytetään, jos linkkejä on liikaa. |
EPIPE | 32 | Se näkyy, jos putki rikkoutuu. |
EDOM | 33 | Se näytetään, jos numeerinen argumentti on toimialueen ulkopuolella. |
ERANGE | 3. 4 | Se näytetään, jos numeerinen tulos on alueen ulkopuolella. |
EDEADLK | 35 | Se näytetään, jos resurssien lukkiutuminen vältetään. |
ENAMETOOLONG | 36 | Se näytetään, jos tiedostonimi on liian pitkä. |
ENOLCK | 37 | Se näkyy, jos lukkoja ei ole saatavilla. |
ENOSYS | 38 | Se näytetään, jos toimintoa ei ole toteutettu. |
TYHJYYS | 39 | Se näkyy, jos hakemisto ei ole tyhjä. |
ELOOP | 40 | Se näytetään, jos symbolisia linkkejä on liikaa. |
ENOMSG | 42 | Se näytetään, jos halutun tyyppistä viestiä ei ole. |
EIDRM | 43 | Se näkyy, jos tunniste poistetaan. |
ECHRNG | 44 | Se näkyy, jos kanavanumero on alueen ulkopuolella. |
EL2NSYNC | Neljä viisi | Se näkyy, jos tasoa 2 ei ole synkronoitu. |
EL3HLT | 46 | Se näkyy, jos taso 3 on pysäytetty. |
EL3RST | 47 | Se näkyy, jos taso 3 nollataan. |
ELNRNG | 48 | Se näytetään, jos linkin numero on alueen ulkopuolella. |
EUNATCH | 49 | Se näkyy, jos protokollaohjainta ei ole liitetty. |
ENOCSI | viisikymmentä | Se näytetään, jos CSI-rakennetta ei ole saatavilla. |
EL2HLT | 51 | Se näkyy, jos taso 2 on pysäytetty. |
SE ON OLLUT | 52 | Se näytetään virheellisen vaihdon tapauksessa. |
EBADR | 53 | Se näytetään, jos pyyntökuvaaja on virheellinen. |
EXFULL | 54 | Se näkyy, jos vaihto on täynnä. |
ENOANO | 55 | Se näkyy, jos anodia ei ole. |
EBADRQC | 56 | Se näytetään, jos pyyntökoodi on virheellinen. |
EBADSLT | 57 | Se näytetään virheellisen paikan kohdalla. |
EBFONT | 59 | Se näytetään, jos fonttitiedostomuoto on huono. |
YKSIPUOLINEN | 60 | Se näytetään, jos laite ei ole suoratoisto. |
ENODATA | 61 | Se näytetään, jos tietoja ei ole saatavilla. |
AIKA | 62 | Se näkyy, jos ajastin on vanhentunut. |
ENOSR | 63 | Se näytetään, jos resursseja ei ole. |
ENONET | 64 | Se näkyy, jos laite ei ole verkossa. |
ENOPKG | 65 | Se näkyy, jos pakettia ei ole asennettu. |
EREMOTE | 66 | Se näkyy, jos kohde on etänä. |
ENOLINK | 67 | Se näkyy, jos linkki on katkennut. |
EADV | 68 | Se näytetään mainosvirheen vuoksi. |
ESRMNT | 69 | Se näytetään Srmount-virheen vuoksi. |
ECOMM | 70 | Se näkyy, jos lähetyksessä on tiedonsiirtovirhe. |
EPROTO | 71 | Se näytetään protokollavirheen varalta. |
EMULTIHOP | 72 | Se näytetään Multihop-yritysten kohdalla. |
EDOTDOT | 73 | Se näytetään RFS-kohtaisten virheiden yhteydessä. |
EBADMSG | 74 | Se näkyy huonossa viestissä. |
EOVERFLOW | 75 | Se näytetään, jos arvo on liian suuri määritetylle tietotyypille. |
ENOTUNIQ | 76 | Se näytetään, jos nimi ei ole ainutlaatuinen verkossa. |
EBADFD | 77 | Se näytetään, jos tiedostokuvaaja on huonossa tilassa. |
EREMCHG | 78 | Se näkyy, jos etäosoite muuttuu. |
ELIBACC | 79 | Se näytetään, jos emme voi käyttää tarvittavaa jaettua kirjastoa. |
ELIBBAD | 80 | Se näytetään, jos käytät vioittunutta jaettua kirjastoa. |
ELIBSCN | 81 | Se näytetään, jos .lib-osio a.outissa on vioittunut. |
ELIBMAX | 82 | Se näytetään, jos yritämme linkittää liian moneen jaettuun kirjastoon. |
ELIBEXEC | 83 | Se näytetään, jos emme voi suorittaa jaettua kirjastoa suoraan. |
EILSEQ | 84 | Se näytetään virheellisen tai epätäydellisen monitavuisen tai leveän merkin kohdalla |
ERESTART | 85 | Se näytetään ilmoittamaan, että keskeytynyt järjestelmäpuhelu on käynnistettävä uudelleen. |
ESTRPIPE | 86 | Se näytetään, jos virtausputkissa on virhe. |
KÄYTTÄJÄT | 87 | Se näytetään liian monelle käyttäjälle. |
ENOTSOCK | 88 | Se näkyy pistorasian toiminnassa ei-pistorasiassa. |
EDESTADDRREQ | 89 | Se näytetään, jos kohdeosoite vaaditaan. |
EMGSSIZE | 90 | Se näkyy, jos viesti on liian pitkä. |
EPROTOTYYPPI | 91 | Se näytetään, jos protokolla on väärän tyyppinen socketille. |
ENOPROTOOPT | 92 | Se näkyy, jos protokolla ei ole käytettävissä. |
EPROTONOSUPPORT | 93 | Se näkyy, jos protokollaa ei tueta. |
ESOCKTNOSUPPORT | 94 | Se näkyy, jos Socket-tyyppiä ei tueta. |
EOPNOTSUPP | 95 | Se näkyy, jos toimintoa ei tueta. |
EPFNOSUPPORT | 96 | Se näkyy, jos protokollaperhettä ei tueta. |
EAFNOSUPPORT | 97 | Se näytetään, jos protokolla ei tue osoiteperhettä. |
EADDRINUS | 98 | Se näkyy, jos osoite on jo käytössä. |
EADDRNOT SAATAVILLA | 99 | Se näytetään, jos järjestelmä ei voi määrittää pyydettyä osoitetta. |
ENETDOWN | 100 | Se näkyy, jos verkko on poikki. |
ENETUNREACH | 101 | Se näkyy, jos verkkoon ei saada yhteyttä. |
ENETRESET | 102 | Se näkyy, jos verkkoyhteys on katkennut nollattaessa. |
ECONABORTED | 103 | Se näkyy, jos ohjelmisto aiheutti yhteyden katkeamisen. |
ECONNRESET | 104 | Se näytetään, jos vertaisverkko on nollannut yhteyden. |
ENOBUFS | 105 | Se näytetään, jos puskuritilaa ei ole käytettävissä. |
ESKON | 106 | Se näytetään, jos kuljetuksen päätepiste on jo yhdistetty. |
ENOTCONN | 107 | Se näytetään, jos kuljetuksen päätepistettä ei ole yhdistetty. |
SULKU | 108 | Se näytetään, jos järjestelmä ei voi lähettää lähetystä kuljetuksen päätepisteen sammutuksen jälkeen. |
ETOOMANYREFS | 109 | Se näytetään, jos viittauksia on liian monta: ei voida yhdistää. |
ETIMEDOUT | 110 | Se näkyy, jos yhteys on aikakatkaistu. |
KIELÄTYNYT | 111 | Se näkyy, jos yhteys evätään. |
EHOSTDOWN | 112 | Se näkyy, jos isäntä on alhaalla. |
EHOSTUNREACH | 113 | Se näytetään, jos isäntäreittiä ei ole. |
JO JO | 114 | Se näkyy, jos toiminto on jo käynnissä. |
JOKAINEN EDISTYMINEN | 115 | Se näkyy, jos toiminto on parhaillaan käynnissä. |
KLIKKAUS | 116 | Se näytetään vanhentuneen tiedostokahvan kohdalla. |
EUCLEAN | 117 | Se näkyy, jos rakenne tarvitsee puhdistusta. |
UNIFORM | 118 | Se ei näy XENIX-tyyppiselle tiedostolle. |
ENAVAIL | 119 | Se näytetään, jos XENIX-semaforeja ei ole saatavilla. |
EISNAM | 120 | Se näytetään, jos on nimetty tyyppinen tiedosto. |
EREMOTIO | 121 | Se näkyy Remote I/O -virheen yhteydessä. |
EDQUOT | 122 | Se näytetään, jos levykiintiö ylittyy. |
ENOMEDIUM | 123 | Se näytetään, jos tietovälinettä ei löydy. |
EMEDIUMTYPE | 124 | Se näytetään, jos tietoväline on väärä. |
PERUUTETTU | 125 | Se näkyy, jos toiminta peruutetaan. |
ENOKEY | 126 | Se näkyy, jos vaadittua avainta ei ole saatavilla. |
EKEY PÄÄNTYNYT | 127 | Se näkyy, jos avain on vanhentunut. |
EKEYREVOKED | 128 | Se näkyy, jos avain on peruutettu. |
EKEY hylätty | 129 | Se näkyy, jos huolto hylkäsi avaimen. |
EOWNERDEAD | 130 | Se näkyy, jos omistaja on kuollut. |
EI PALAUTETTU | 131 | Se näytetään, jos tila ei palauteta. |
ERFKILL | 132 | Se näkyy, jos toiminto ei ole mahdollista RF-kill:n vuoksi. |
EHWPOISON | 133 | Se näytetään, jos muistisivulla on laitteistovirhe. |