Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Globala makron som innehåller felkoder som anges under programkörningen och strängmotsvarigheter för felkoderna för visning.
Syntax
#define errno (*_errno())
#define _doserrno (*__doserrno())
#define _sys_errlist (__sys_errlist())
#define _sys_nerr (*__sys_nerr())
Anmärkningar
Både errno och _doserrno anges till 0 av körningen under programstarten.
errno anges på ett fel i ett anrop på systemnivå. Eftersom errno innehåller värdet för det senaste anropet som angav det, kan det här värdet ändras genom efterföljande anrop. Körningsbiblioteksanrop som har angetts errno för ett fel raderas errno inte vid lyckade försök. Rensa errno alltid genom att ringa _set_errno(0) direkt före ett samtal som kan ställa in det och kontrollera det direkt efter samtalet.
Vid ett fel errno är inte nödvändigtvis inställt på samma värde som felkoden som returneras av ett systemanrop. För I/O-åtgärder _doserrno lagrar operativsystemets felkodsmotsvarigheter för errno koder. För de flesta icke-I/O-åtgärder anges inte värdet _doserrno för .
Varje errno värde är associerat med ett felmeddelande i _sys_errlist som kan skrivas ut med hjälp av någon av perror funktionerna eller lagras i en sträng med hjälp av någon av strerror funktionerna eller strerror_s . Funktionerna perror och strerror använder matrisen _sys_errlist och _sys_nerr– antalet element i _sys_errlist– för att bearbeta felinformation. Direkt åtkomst till _sys_errlist och _sys_nerr är inaktuell av kodsäkerhetsskäl. Vi rekommenderar att du använder de säkrare och mer funktionella versionerna i stället för de globala makrona, som du ser här:
| Globalt makro | Funktionella motsvarigheter |
|---|---|
_doserrno |
_get_doserrno, _set_doserrno |
errno |
_get_errno, _set_errno |
_sys_errlist, _sys_nerr |
strerror_s, _strerror_s, , _wcserror_s__wcserror_s |
Biblioteksmatematikrutiner som anges errno genom att anropa _matherr. Om du vill hantera matematiska fel på olika sätt skriver du din egen rutin enligt _matherr referensbeskrivningen och namnger den _matherr.
Alla errno värden är fördefinierade konstanter i <errno.h>och är UNIX-kompatibla. Endast ERANGE, EILSEQoch EDOM anges i STANDARDEN ISO C99. En fullständig lista finns i errno konstanter.
Kravspecifikation
| Globalt makro | Obligatoriskt huvud | Valfritt sidhuvud |
|---|---|---|
errno |
<errno.h> eller <stdlib.h>, <cerrno> eller <cstdlib> (C++) |
|
_doserrno, _sys_errlist_sys_nerr |
<stdlib.h>, <cstdlib> (C++) |
<errno.h>, <cerrno> (C++) |
Makrona _doserrno, _sys_errlistoch _sys_nerr är Microsoft-tillägg. Mer kompatibilitetsinformation finns i Kompatibilitet.
Se även
Globala variabler
errno Konstanter
perror, _wperror
strerror, _strerror, , _wcserror__wcserror
strerror_s, _strerror_s, , _wcserror_s__wcserror_s
_get_doserrno
_set_doserrno
_get_errno
_set_errno