strerror_s, _strerror_s, _wcserror_s, __wcserror_s

Recevez un message d'erreur système (strerror_s, _wcserror_s) ou encore imprimer un message d'erreur défini par l'utilisateur (_strerror_s, __wcserror_s).Ce sont des versions de strerror, _strerror, _wcserror, __wcserror avec des améliorations de sécurité comme décrit dans Fonctionnalités de sécurité du 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

Paramètres

  • buffer
    Mémoire tampon pour contenir la chaîne d'erreur.

  • numberOfElements
    taille de mémoire tampon.

  • errnum
    Numéro de l'erreur.

  • strErrMsg
    message écrit par l'utilisateur.

Valeur de retour

Zéro en cas de réussite, le code d'erreur en cas de échec.

conditions d'erreur

buffer

numberOfElements

strErrMsg

contenu d' buffer

NULL

quels

quels

N/A

quels

0

quels

non modifié

Notes

La fonction d' strerror_s mappe errnum à une chaîne de message d'erreur, qui retourne un pointeur à la chaîne._strerror_s ne prend pas le numéro d'erreur ; il utilise la valeur actuelle d' errno pour déterminer le message approprié.ni strerror_s ni _strerror_s n'imprime réellement le message : Pour qui, vous devez appeler une fonction de sortie semblable fprintf:

if (( _access( "datafile",2 )) == -1 )
{
   _strerror_s(buffer, 80);
   fprintf( stderr, buffer );
}

Si strErrMsg est NULL, _strerror_s retourne un pointeur vers une chaîne contenant le message d'erreur système pour le dernier appel de bibliothèque qui a produit une erreur.la chaîne de message d'erreur est terminée par le caractère de saut de ligne ("\ n ").Si strErrMsg n'est pas égal à NULL, alors _strerror_s retourne un pointeur vers une chaîne contenant (dans l'ordre) votre message de chaîne, deux-points, un espace, le message d'erreur système pour le dernier appel de bibliothèque pour produire une erreur, et un caractère de saut de ligne.Votre message de chaîne peut être, au plus, 94 caractères.

ces fonctions tronquent le message d'erreur si sa longueur dépasse numberOfElements -1.La chaîne résultante dans buffer est toujours se terminant par null.

Le numéro d'erreur réel pour _strerror_s est stocké dans errnovariable.Les messages d'erreur système sont accessibles via _sys_errlistvariable, qui est un tableau de nombres par erreur classé par messages._strerror_s accède au message d'erreur adapté à l'aide de la valeur d' errno comme index à _sys_errlistvariable.La valeur de _sys_nerr variable est définie comme un nombre maximal d'éléments du tableau d' _sys_errlist .Pour produire des résultats exacts, l'appel _strerror_s immédiatement après une routine de bibliothèque retourne avec une erreur.Sinon, les appels suivants à strerror_s ou l' _strerror_s peuvent remplacer la valeur d' errno .

_wcserror_set __wcserror_ssont des versions à caractères larges d' strerror_set d' _strerror_s, respectivement.

ces fonctions valident leurs paramètres.si la mémoire tampon est NULL ou si le paramètre de taille est 0, le gestionnaire de paramètre non valide est appelé, comme décrit dans Validation des paramètres .Si est autorisé à l'exécution de se poursuivre, les fonctions EINVAL de retour et errno défini à EINVAL.

_strerror_s, _wcserror_s, et __wcserror_sne font pas partie de la définition ANSI mais sont plutôt des extensions Microsoft à celui-ci.Ne les utilisez pas où la portabilité est souhaitée ; pour la compatibilité ANSI, utilisezstrerror_sà la place.

En C++, à l'aide de ces fonctions est simplifié par des surcharges de modèle ; les surcharges peuvent également déduire la longueur de la mémoire tampon automatiquement, en éliminant le besoin de spécifier un argument de taille.Pour plus d'informations, consultez Surcharges sécurisées de modèle.

Les versions debug de ces fonctions exécutent d'abord mémoire tampon avec 0xFD.Pour désactiver ce comportement, utilisez _CrtSetDebugFillThreshold.

mappages de routines de texte générique

routine de TCHAR.H

_MBCS & de _UNICODE non défini

_MBCS défini

_UNICODE défini

_tcserror_s

strerror_s

strerror_s

_wcserror_s

Configuration requise

routine

en-tête requis

strerror_s, _strerror_s

<string.h>

_wcserror_s, __wcserror_s

<string.h> ou <wchar.h>

Pour des informations de compatibilité supplémentaires, consultez compatibilité dans l'introduction.

Exemple

Consultez l'exemple pour perror.

Équivalent .NET Framework

System : : exception : : message

Voir aussi

Référence

Manipulation de chaînes (CRT)

clearerr

ferror

perror, _wperror