Errno.h

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

Makrot ja tyypit

#include <errno.h> #define EDOM #define EILSEQ #define ERANGE extern int errno ;

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]

POSIX

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

Linkit

Muistiinpanot

  1. ISO IEC 9899 1999 - C99, §7.5
  2. ISO/IEC 9899:1999 . Haettu 30. heinäkuuta 2011. Arkistoitu alkuperäisestä 22. elokuuta 2011.
  3. Järjestelmäopas errno.h:n käyttöön . Käyttöpäivä: 17. tammikuuta 2012. Arkistoitu alkuperäisestä 4. maaliskuuta 2016.