errno.h on C-ohjelmointikielen [1] vakiokirjaston otsikkotiedosto , joka sisältää makromäärittelyn virheiden tunnistamiseksi koodin avulla. POSIX -yhteensopivat käyttöjärjestelmät, kuten Unix ja Linux , voivat sisältää muita makroja virheiden havaitsemiseksi omien koodiensa avulla . Arvolla on merkitystä vain, kun järjestelmäkutsu tai funktio palauttaa virhelipun. errnoerrno
Otsikkotiedosto määrittää seuraavat makrot: EDOM, EILSEQ, ERANGE. Ne ovat tyyppisiä int, niillä on positiivinen arvo ja niitä voidaan käyttää esiprosessoriohjeissa#if . Kun ohjelma käynnistyy, arvo errnoon nolla.
Makro | Salauksen purku | semanttinen merkitys |
---|---|---|
EDOM | Error dom ain _ | Laajuusvirhe |
EILSEQ | E rror i nva l id -sekvenssi _ | Väärä tavusekvenssi |
ERANGE | Virhealue _ _ | Tulos on liian suuri |
Otsikkotiedosto määritellään errnomuuttuvaksi lv-arvoksi , joka voi olla makro tai ulkoisesti sidottu tunniste.
Virhetapauksessa jotkin kirjastofunktiot asettavat errnopositiivisen arvon, mutta eivät koskaan aseta sitä nollaan. Standardi ei määrittele muita virhekoodeja. [2]
Virheviesti voidaan vastaanottaa käyttämällä säikeen turvatoimintoa strerror_r()( strerror()yksisäikeisille ohjelmille) tai tulostaa virhevirtaan käyttämällä perror().
POSIX-standardi määrittelee seuraavat symboliset virhenimet [3] :
Makro | Viesti |
---|---|
E2BIG | Argumenttilista on liian pitkä |
EACCES | Pääsy evätty |
EADDRINUSE | Osoite käytössä |
EADDRNOT SAATAVILLA | Osoite ei ole saatavilla |
EAFNOSUPPORT | Osoiteperhettä ei tueta |
UUDELLEEN | Resurssi ei tilapäisesti käytettävissä |
JO JO | Yhteys jo muodostettu |
EBADF | Virheellinen tiedostokuvaus |
EBADMSG | Väärä viesti |
EBUSY | Resurssit varattu |
PERUUTETTU | Toiminto peruttu |
LAPSI | Ei lapsiprosessia |
ECONABORTED | Yhteys katkaistu |
HYÖTYNYTTY | yhteys evätty |
EDEADLK | Resurssien umpikujan ratkaisu |
EDESTADDRREQ | Kohdeosoite vaaditaan |
EDOM | Laajuusvirhe |
EDQUOT | varattu |
OLLA OLEMASSA | Tiedosto on olemassa |
EFAULT | Väärä osoite |
EFBIG | Tiedosto on liian suuri |
EHOSTUNREACH | Isäntä ei saatavilla |
EIDRM | Tunnus poistettu |
EILSEQ | Väärä tavusekvenssi |
EINPROGRESS | Toiminta käynnissä |
EINTR | Toimintokutsu keskeytetty |
EINVAL | Väärä argumentti |
EIO | I/O-virhe |
EISCONN | Pistorasia (jo) kytketty |
EISDIR | Tämä on luettelo |
ELOOP | Liian monta tasoa symbolisia linkkejä |
EMFILE | Liian monta avointa tiedostoa |
EMLINK | Liikaa yhteyksiä |
EMGSSIZE | Määrittämätön viestipuskurin pituus |
EMULTIHOP | varattu |
ENAMETOOLONG | Tiedoston nimi on liian pitkä |
ENETDOWN | Verkko ei toimi |
ENETRESET | Verkko katkaisi yhteyden |
ENETUNREACH | Verkko ei ole käytettävissä |
ENFILE | Liian monta avointa tiedostoa järjestelmässä |
ENOBUFS | Puskuritilaa ei ole käytettävissä |
ENODEV | Ei sellaista laitetta |
ENOENT | Ei tällaista tiedostoa tai hakemistoa |
ENOEXEC | Suoritettava tiedostomuotovirhe |
ENOLCK | Lukko ei ole käytettävissä |
ENOLINK | varattu |
ENOMEM | Ei tarpeeksi muistia |
ENOMSG | Vaaditun tyyppinen viesti puuttuu |
ENOPROTOOPT | Protokolla ei ole käytettävissä |
ENOSPC | Laitteessa ei ole muistia jäljellä |
ENOSYS | Toimintoa ei ole toteutettu |
ENOTCONN | pistorasiaa ei ole kytketty |
ENOTDIR | Tämä ei ole hakemisto |
TYHJYYS | Hakemisto ei ole tyhjä |
ENOTSOCK | Se ei ole pistorasia |
ENOTSUP | Ei tueta |
ENOTTY | Määrittämätön I/O-ohjaustoiminto |
ENXIO | Ei sellaista laitetta tai osoitetta |
EOPNOTSUPP | pistorasiaa ei tueta |
EOVERFLOW | Liian suuri arvo tietotyypille |
EPERM | Toimintaa ei sallita |
EPIPE | Rikkinäinen kanava |
EPROTO | protokollavirhe |
EPROTONOSUPPORT | Protokollaa ei tueta |
EPROTOTYYPPI | Väärä protokollatyyppi socketille |
ERANGE | Tulos on liian suuri |
EROFS | Vain luku -tiedostojärjestelmä |
ESPIPE | Väärä sijoitus |
ESRCH | Ei sellaista prosessia |
ESTALE | varattu |
ETIMEDOUT | Operaatio viivästynyt |
ETXTBSY | Tekstitiedosto varattu |
EWOULDBLOCK | estotoiminto |
EXDEV | Epämääräinen yhteys |