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. Informationen dazu finden Sie unter strerror_s, _strerror_s, _wcserror_s, __wcserror_s.
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
All diese Funktionen geben einen Zeiger zur Fehlermeldungszeichenfolge zurück. Nachfolgende Aufrufe können die Zeichenfolge überschreiben.
Hinweise
Die Funktion strerror ordnet errnum einer Fehlermeldungszeichenfolge zu und gibt einen Zeiger zur Zeichenfolge zurück. Die Meldung wird allerdings weder von strerror noch _strerror gedruckt: Dazu muss eine Ausgabefunktion wie fprintf aufgerufen werden:
if (( _access( "datafile",2 )) == -1 )
fprintf( stderr, _strerror(NULL) );
Wenn strErrMsg als NULL übergeben wird, gibt _strerror einen Zeiger auf eine Zeichenfolge zurück, die die Systemfehlermeldung für den letzten Bibliotheksaufruf enthält, die einen Fehler produziert hat. Die Fehlermeldungszeichenfolge wird durch das Zeilenumbruchzeichen ('\n') beendet. Wenn strErrMsg nicht gleich NULL ist, gibt _strerror einen Zeiger zu einer Zeichenfolge zurück, die folgende Elemente (in der angegebenen Reihenfolge) enthält: die Zeichenfolgenmeldung, einen Doppelpunkt, ein Leerzeichen, die Systemfehlermeldung zu dem letzten Bibliotheksaufruf, der einen Fehler erzeugt hat, und ein Zeilenumbruchzeichen. Die Zeichenfolgenmeldung darf höchstens 94 Zeichen lang sein.
Die tatsächliche Fehlernummer für _strerror wird in der Variablen errno gespeichert. Um vollständige Ergebnisse zu erzeugen, rufen Sie umgehend _strerror auf, nachdem eine Bibliotheksroutine einen Fehler zurückgibt. Andernfalls können nachfolgende Aufrufe von strerror oder _strerror den errno-Wert überschreiben.
_wcserror und __wcserror sind jeweils Breitzeichenversionen von strerror und _strerror.
_strerror, _wcserror und __wcserror sind nicht Teil der ANSI-Definition, sondern Microsoft-Erweiterungen. Es wird empfohlen, diese nicht zu verwenden, wenn Sie portablen Code möchten. Verwenden Sie für ANSI-Kompatibilität stattdessen strerror.
Zum Abrufen von Fehlerzeichenfolgen wird strerror oder _wcserror anstelle der veralteten Makros _sys_errlist und _sys_nerr sowie der veralteten internen Funktionen __sys_errlist und __sys_nerr empfohlen.
Zuordnung 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> |
Zusätzliche Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Beispiel
Betrachten Sie das Beispiel für perror.