Freigeben über


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.

.NET Framework-Entsprechung

System::Ausnahme::Meldung

Siehe auch

Referenz

Zeichenfolgenbearbeitung (CRT)

clearerr

ferror

perror, _wperror