errno.h er header-filen i standardbiblioteket for programmeringssproget C [1] , der indeholder en makroerklæring til identifikation af fejl gennem deres kode. POSIX -kompatible operativsystemer, som Unix og Linux , kan inkludere andre makroer til at opdage fejl gennem deres egne koder errno. Værdien errnoer kun meningsfuld, når systemkaldet eller funktionen returnerer et fejlflag.
Header-filen definerer følgende makroer: EDOM, EILSEQ, ERANGE. De er af typen int, har en positiv værdi og kan bruges i præprocessor - direktiver #if. Når programmet starter, er værdien errnonul.
Makro | Dekryptering | semantisk betydning |
---|---|---|
EDOM | Fejl i domæne _ | Omfang fejl |
EILSEQ | Fejl i nval id sekvens _ _ _ | Forkert byte-sekvens |
ERANGE | Fejlområde _ _ | Resultatet er for stort |
Header-filen defineres errnosom en foranderlig lværdi , der kan være en makro eller en eksternt bundet identifikator.
I tilfælde af en fejl indstilles nogle biblioteksfunktioner til en errnopositiv værdi, men sætter den aldrig til nul. Standarden angiver ikke andre fejlkoder. [2]
En fejlmeddelelse kan modtages ved hjælp af en trådsikker funktion strerror_r()( strerror()for enkelttrådede programmer) eller udskrives til fejlstrømmen ved hjælp af perror().
POSIX-standarden definerer følgende symbolske fejlnavne [3] :
Makro | Besked |
---|---|
E2BIG | Argumentlisten er for lang |
EACCES | Adgang nægtet |
EADDRINUS | Adresse i brug |
EADDRNOTAVAIL | Adressen er ikke tilgængelig |
EAFNOSUPPORT | Adressefamilien understøttes ikke |
IGEN | Ressourcen er midlertidigt utilgængelig |
ALLEREDE KLAR | Forbindelsen er allerede etableret |
EBADF | Ugyldig filbeskrivelse |
EBADMSG | Forkert besked |
EBUSY | Ressource travlt |
AFLYST | Operation annulleret |
ECHILD | Ingen børneproces |
ECONNABORTET | Forbindelsen afbrudt |
EKONFUSERT | Tilslutning afvist |
EDEADLK | Ressource dødvande løsning |
EDESTADDRREQ | Destinationsadresse påkrævet |
EDOM | Omfang fejl |
EDQUOT | reserveret |
EKSISTERER | Filen findes |
EFAULT | Forkert adresse |
EFBIG | Filen er for stor |
EHOSTUNREACH | Vært ikke tilgængelig |
EIDRM | ID fjernet |
EILSEQ | Forkert byte-sekvens |
EINPROGRESS | Drift i gang |
EINTR | Afbrudt funktionskald |
EINVAL | Forkert argument |
EIO | I/O fejl |
EISCONN | Stik (allerede) tilsluttet |
EISDIR | Dette er et katalog |
LOOP | For mange niveauer af symbolske links |
EMFILER | For mange åbne filer |
EMLINK | Alt for mange forbindelser |
EMSGSIZE | Udefineret meddelelsesbufferlængde |
EMULTIHOP | reserveret |
ENAMETOOLONG | Filnavnet er for langt |
ENETDOWN | Netværket er nede |
ENETRESET | Forbindelsen afbrudt af netværket |
ENETUNREACH | Netværket er ikke tilgængeligt |
ENFILER | For mange åbne filer på systemet |
ENOBUFS | Bufferplads ikke tilgængelig |
ENODEV | Ingen sådan enhed |
ENOENT | Ingen sådan fil eller mappe |
ENOEXEC | Fejl i eksekverbart filformat |
ENOLCK | Lås ikke tilgængelig |
ENOLINK | reserveret |
ENOMEM | Ikke nok hukommelse |
ENOMSG | Meddelelse af den ønskede type mangler |
ENOPROTOOPT | Protokol er ikke tilgængelig |
ENOSPC | Der er ingen hukommelse tilbage på enheden |
ENOSYS | Funktion ikke implementeret |
ENOTCONN | stikkontakt ikke tilsluttet |
ENOTDIR | Dette er ikke en mappe |
ENOTEMME | Directory er ikke tom |
ENOTSOCK | Det er ikke en stikkontakt |
ENOTSUP | Ikke understøttet |
ENOTTY | Udefineret I/O-kontrolfunktion |
ENXIO | Ingen sådan enhed eller adresse |
EOPNOTSUPP | socket-drift understøttes ikke |
OVERFLØD | For stor værdi for datatypen |
EPERM | Betjening ikke tilladt |
EPIPE | Ødelagt kanal |
EPROTO | protokol fejl |
EPROTONOSUPPORT | Protokol understøttes ikke |
EPROTOTYPE | Forkert protokoltype til socket |
ERANGE | Resultatet er for stort |
EROFS | Skrivebeskyttet filsystem |
ESPIPE | Forkert positionering |
ESRCH | Ingen sådan proces |
ESTALE | reserveret |
ETIMEOUT | Operation forsinket |
ETXTBSY | Tekstfil optaget |
EWOULDBLOKER | blokerende operation |
EXDEV | Ubestemt forbindelse |