strerror_s, _strerror_s, _wcserror_s, __wcserror_s
Erhalten Sie eine Systemfehler Fehlermeldung,strerror_s( _wcserror_s) oder eine vom Benutzer bereitgestellte Fehlermeldung (_strerror_s, __wcserror_s).Dies sind Versionen von strerror, _strerror, _wcserror, __wcserror mit beschrieben, wie unter Security Enhancements in Sicherheitsfeatures im CRT.
errno_t strerror_s(
char *buffer,
size_t numberOfElements,
int errnum
);
errno_t _strerror_s(
char *buffer,
size_t numberOfElements,
const char *strErrMsg
);
errno_t _wcserror_s(
wchar_t *buffer,
size_t numberOfElements,
int errnum
);
errno_t __wcserror_s(
wchar_t *buffer,
size_t numberOfElements,
const wchar_t *strErrMsg
);
template <size_t size>
errno_t strerror_s(
char (&buffer)[size],
int errnum
); // C++ only
template <size_t size>
errno_t _strerror_s(
char (&buffer)[size],
const char *strErrMsg
); // C++ only
template <size_t size>
errno_t _wcserror_s(
wchar_t (&buffer)[size],
int errnum
); // C++ only
template <size_t size>
errno_t __wcserror_s(
wchar_t (&buffer)[size],
const wchar_t *strErrMsg
); // C++ only
Parameter
buffer
Puffer, in dem die Fehlerzeichenfolge enthält.numberOfElements
Größe des Puffers.errnum
Fehlernummer.strErrMsg
Vom Benutzer bereitgestellte Meldung.
Rückgabewert
Beliebige wenn erfolgreich, ein Fehlercode auf Fehler.
Fehlerbedingungen
buffer |
numberOfElements |
strErrMsg |
Inhalt von buffer |
---|---|---|---|
NULL |
alle |
alle |
nicht verfügbar |
alle |
0 |
alle |
nicht geändert |
Hinweise
Die strerror_s-Funktion ordnet errnum auf eine Fehlermeldungszeichenfolge und gibt einen Zeiger auf eine Zeichenfolge zurück._strerror_s nimmt nicht die Fehlernummer. sie verwendet den aktuellen Wert von errno , um die entsprechende Meldung zu bestimmen.Weder strerror_s gibt noch _strerror_s eigentlich die Meldung: Für dieses fprintfmüssen Sie eine Ausgabefunktion wie aufrufen:
if (( _access( "datafile",2 )) == -1 )
{
_strerror_s(buffer, 80);
fprintf( stderr, buffer );
}
Wenn strErrMsgNULList, gibt _strerror_s einen Zeiger auf eine Zeichenfolge zurück, die die Systemfehler Fehlermeldung für den letzten Aufruf der Bibliothek enthält, der einen Fehler erzeugt hat.Die Zeichenfolge der Fehlermeldung wird durch das Zeilenumbruchzeichen („\ n ") endet.Wenn strErrMsg ungleich NULList, gibt _strerror_s einen Zeiger auf eine Zeichenfolge zurück, die enthält (in der Reihenfolge), die einen Doppelpunkt, für eine Zeichenfolge ein Leerzeichen, die Systemfehler Fehlermeldung für den letzten Aufruf der Bibliothek, einen Fehler erzeugend und ein Zeilenumbruchzeichen.Die Zeichenfolgen für eine kann höchstens 94 Zeichen lang.
Diese Funktionen überschreiten die Fehlermeldung ab, wenn seine Länge numberOfElements -1 übersteigt.Die resultierende Zeichenfolge in buffer ist immer auf NULL.
Die tatsächliche Fehlernummer für _strerror_s wird in der Variablen gespeichert errno.Die Systemfehler Fehlermeldungen werden durch die Variable _sys_errlistzugegriffen, die ein Array der sortierten irrtümlicherweise Anzahl der Nachrichten ist._strerror_s greift auf die entsprechende Fehlermeldung zu, indem Sie den errno-Wert als Index für variablen _sys_errlistverwendet.Der Wert der Variablen _sys_nerr ist als die maximale Anzahl von Elementen im _sys_errlist Array definiert.Um genaue Ergebnisse zu erzeugen, kehrt sofort nach dem Aufruf _strerror_s einer Bibliothek routine einen Fehler zurück.Andernfalls können nachfolgende Aufrufe von strerror_s oder _strerror_s den errno-Wert überschreiben.
_wcserror_sund __wcserror_ssind Breitzeichenversionen vonstrerror_sund _strerror_s.
Diese Funktionen überprüfen deren Parameter.Wenn Puffer NULL ist oder wenn der Größenparameter 0 ist, wird der Ereignishandler aufgerufen, z. B. ungültige Parameter in Parametervalidierung beschrieben.Wenn die Ausführung fortgesetzt werden kann, darf die Funktionen geben EINVAL festlegen und errno zu EINVAL.
_strerror_s, _wcserror_s, und __wcserror_ssind, sind aber nicht Teil der ANSI-Definition Microsoft-Erweiterungen stattdessen an.Verwenden Sie diese nicht, wo Portabilität erwünscht ist. Verwenden Sie stattdessen bei Einhaltung der ANSI-Kompatibilitätstrerror_s.
In C++ unter Verwendung dieser Funktionen wird von Vorlagen Operatoren vereinfacht. Überladungen können die Pufferlänge automatisch ableiten und die Notwendigkeit mehr, ein Größen - Argument angegeben wird.Weitere Informationen finden Sie unter Speichern Sie Vorlagen-Überladungen.
Die Debugversionen dieser Funktionen geben zuerst den Puffer mit 0xFD aus.Um dieses Verhalten zu deaktivieren, verwenden Sie _CrtSetDebugFillThreshold.
Zuweisung generischer Textroutinen
TCHAR.H-Routine |
_UNICODE & _MBCS nicht definiert |
_MBCS definieren |
_UNICODE definiert |
---|---|---|---|
_tcserror_s |
strerror_s |
strerror_s |
_wcserror_s |
Anforderungen
Routine |
Erforderlicher Header |
---|---|
strerror_s, _strerror_s |
<string.h> |
_wcserror_s, __wcserror_s |
<string.h> oder <wchar.h> |
Um Kompatibilität zusätzlichen Informationen finden Sie unter Kompatibilität in der Einführung.
Beispiel
Weitere Informationen finden Sie im Beispiel für perror.