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 errnogespeichert. 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, _wcserrorund __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. Informationen zum Ändern dieses Verhaltens finden Sie im Global state in the CRT.

Generische Textroutinzuordnungen

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

Sehen Sie sich das Beispiel für perror.

Siehe auch

Zeichenfolgenmanipulation
clearerr
ferror
perror, _wperror