Errno.h

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.

Makroer og typer

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

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]

POSIX

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

Links

Noter

  1. ISO IEC 9899 1999 - C99, §7.5
  2. ISO/IEC 9899:1999 . Hentet 30. juli 2011. Arkiveret fra originalen 22. august 2011.
  3. Systemvejledning til brug af errno.h . Dato for adgang: 17. januar 2012. Arkiveret fra originalen 4. marts 2016.