Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Globale macro's die foutcodes bevatten die zijn ingesteld tijdens het uitvoeren van het programma en tekenreeksequivalenten van de foutcodes voor weergave.
Syntaxis
#define errno (*_errno())
#define _doserrno (*__doserrno())
#define _sys_errlist (__sys_errlist())
#define _sys_nerr (*__sys_nerr())
Opmerkingen
Beide errno en _doserrno zijn ingesteld op 0 door de runtime tijdens het opstarten van het programma.
errno is ingesteld op een fout in een aanroep op systeemniveau. Omdat errno de waarde voor de laatste aanroep die deze heeft ingesteld, bevat, kan deze waarde worden gewijzigd door geslaagde aanroepen. Runtimebibliotheekaanroepen die zijn ingesteld errno op een fout, worden niet gewist errno bij geslaagd. Altijd wissen errno door direct voor een oproep te bellen _set_errno(0) die het kan instellen en het direct na de oproep te controleren.
Bij een fout errno is niet noodzakelijkerwijs ingesteld op dezelfde waarde als de foutcode die wordt geretourneerd door een systeemaanroep. Voor I/O-bewerkingen _doserrno worden de foutcode-equivalenten van codes van errno het besturingssysteem opgeslagen. Voor de meeste niet-I/O-bewerkingen is de waarde _doserrno niet ingesteld.
Elke errno waarde is gekoppeld aan een foutbericht waarin _sys_errlist kan worden afgedrukt met behulp van een van de perror functies of die zijn opgeslagen in een tekenreeks met behulp van een van de strerror functies strerror_s . De perror functies strerror gebruiken de _sys_errlist matrix en _sys_nerr(het aantal elementen in _sys_errlist) om foutinformatie te verwerken. Directe toegang tot _sys_errlist en _sys_nerr wordt afgeschaft om codebeveiligingsredenen. We raden u aan de veiligere, functionelere versies te gebruiken in plaats van de globale macro's, zoals hier wordt weergegeven:
| Globale macro | Functionele equivalenten |
|---|---|
_doserrno |
_get_doserrno, _set_doserrno |
errno |
_get_errno, _set_errno |
_sys_errlist, _sys_nerr |
strerror_s, , , _strerror_s_wcserror_s__wcserror_s |
Bibliotheek wiskundige routines ingesteld errno door aan te roepen _matherr. Als u wiskundige fouten anders wilt afhandelen, schrijft u uw eigen routine volgens de _matherr verwijzingsbeschrijving en noemt u deze _matherr.
Alle errno waarden zijn vooraf gedefinieerde constanten in <errno.h>en zijn compatibel met UNIX. Alleen ERANGE, EILSEQen EDOM worden opgegeven in de ISO C99-standaard. Zie errno constanten voor een volledige lijst.
Requirements
| Globale macro | Vereiste header | Optionele koptekst |
|---|---|---|
errno |
<errno.h>of , <stdlib.h> of <cerrno><cstdlib>(C++) |
|
_doserrno, _sys_errlist_sys_nerr |
<stdlib.h>, <cstdlib> (C++) |
<errno.h>, <cerrno> (C++) |
De _doserrno, _sys_errlisten _sys_nerr macro's zijn Microsoft-extensies. Zie Compatibiliteit voor meer compatibiliteitsinformatie.
Zie ook
Algemene variabelen
errno Constanten
perror, _wperror
strerror, , , _strerror_wcserror__wcserror
strerror_s, , , _strerror_s_wcserror_s__wcserror_s
_get_doserrno
_set_doserrno
_get_errno
_set_errno