strerror
, , _strerror
_wcserror
__wcserror
Ruft eine Systemfehlermeldungs-Zeichenfolge (strerror
, _wcserror
) ab oder formatiert eine vom Benutzer bereitgestellte Fehlermeldungszeichenfolge (_strerror
, __wcserror
). Sicherere Versionen dieser Funktionen sind verfügbar; siehe strerror_s
, , _strerror_s
, . __wcserror_s
_wcserror_s
Syntax
char * strerror(
int errnum );
char * _strerror(
const char *strErrMsg );
wchar_t * _wcserror(
int errnum );
wchar_t * __wcserror(
const wchar_t *strErrMsg );
Parameter
errnum
Fehlernummer.
strErrMsg
Vom Benutzer angegebene Meldung.
Rückgabewert
Alle diese Funktionen geben einen Zeiger auf eine Fehlermeldungszeichenfolge in einem threadlokalen Speicherpuffer zurück, der der Laufzeit gehört. Spätere Aufrufe desselben Threads können diese Zeichenfolge überschreiben.
Hinweise
Die Funktion strerror
ordnet errnum
einer Fehlermeldungszeichenfolge zu und gibt einen Zeiger zur Zeichenfolge zurück. Die strerror
Nachrichten werden von den Funktionen _strerror
nicht tatsächlich gedruckt. Rufen Sie zum Drucken eine Ausgabefunktion auf, z fprintf
. B.:
if (( _access( "datafile", 2 )) == -1 )
fprintf( stderr, _strerror(NULL) );
Wenn strErrMsg
dieser Wert als NULL
übergeben wird, _strerror
wird ein Zeiger auf eine Zeichenfolge zurückgegeben. Sie enthält die Systemfehlermeldung für den letzten Bibliotheksaufruf, der einen Fehler verursacht hat. Wenn Sie aufrufen __wcserror
, wird die Fehlermeldungszeichenfolge durch das Zeilenumbruchzeichen ('\n'
) beendet. Die anderen Funktionen werden nicht hinzugefügt '\n'
. Wenn strErrMsg
nicht NULL
, enthält die Zeichenfolge die Reihenfolge: Ihre strErrMsg
Zeichenfolge, ein Doppelpunkt, ein Leerzeichen, die Systemfehlermeldung. Ihre Zeichenfolgennachricht kann höchstens 94 Zeichen lang sein, entweder in schmalen (_strerror
) oder breiten (__wcserror
) Zeichen.
Die tatsächliche Fehlernummer wird _strerror
in der Variablen errno
gespeichert. Um genaue Ergebnisse zu erzielen, rufen Sie _strerror
sofort nach einer Bibliotheksroutine einen Fehler zurück. Andernfalls können spätere Aufrufe von Bibliotheksroutinen den errno
Wert überschreiben.
_wcserror
und __wcserror
sind jeweils Breitzeichenversionen von strerror
und _strerror
.
_strerror
, _wcserror
und __wcserror
sind Microsoft-spezifisch, nicht Teil der Standard-C-Bibliothek. Es wird nicht empfohlen, sie an der Stelle zu verwenden, an der Sie portablen Code benötigen. Verwenden Sie strerror
stattdessen die Standard-C-Kompatibilität.
Um Fehlerzeichenfolgen zu erhalten, empfehlen strerror
oder _wcserror
anstelle der veralteten Makros _sys_errlist
und _sys_nerr
der veralteten internen Funktionen __sys_errlist
und __sys_nerr
.
Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Wie Sie dieses Verhalten ändern, erfahren Sie unter Globaler Status in der CRT.
Mapping generischer Textroutinen
TCHAR.H-Routine | _UNICODE und _MBCS nicht definiert |
_MBCS definiert |
_UNICODE definiert |
---|---|---|---|
_tcserror |
strerror |
strerror |
_wcserror |
Anforderungen
Routine | Erforderlicher Header |
---|---|
strerror |
<string.h> |
_strerror |
<string.h> |
_wcserror , __wcserror |
<string.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Beispiel
Ein Beispiel hierfür finden Sie unter perror
.