Partager via


_strdate_s, _wstrdate_s

Copient la date système actuelle dans une mémoire tampon. Ces fonctions sont des versions de _strdate, _wstrdate avec des améliorations de sécurité, comme indiqué dans Fonctionnalités de sécurité dans le CRT.

Syntaxe

errno_t _strdate_s(
   char *buffer,
   size_t size
);
errno_t _wstrdate_s(
   wchar_t *buffer,
   size_t size
);
template <size_t size>
errno_t _strdate_s(
   char (&buffer)[size]
); // C++ only
template <size_t size>
errno_t _wstrdate_s(
   wchar_t (&buffer)[size]
); // C++ only

Paramètres

buffer
Pointeur vers une mémoire tampon pour placer la chaîne de date mise en forme.

size
Taille de la mémoire tampon en unités de caractères.

Valeur retournée

Zéro si l’opération aboutit. La valeur renvoyée est un code d’erreur en cas de défaillance. Les codes d’erreur sont définis dans ERRNO.H. Consultez le tableau ci-dessous pour en savoir plus sur les erreurs générées exactement par cette fonction. Pour plus d’informations sur les codes d’erreur, consultez errno.

Conditions d’erreur

buffer size Retour Contenu de buffer
NULL (indifférent) EINVAL Non modifié
Non NULL (pointant vers la mémoire tampon valide) 0 EINVAL Non modifié
Non NULL (pointant vers la mémoire tampon valide) 0 <size< 9 EINVAL Chaîne vide
Non NULL (pointant vers la mémoire tampon valide) size>= 9 0 Date actuelle au format spécifié dans la section Notes

Problèmes de sécurité

Si vous transmettez une valeur non NULL non valide pour buffer, cela entraîne une violation d’accès si le size paramètre est supérieur à neuf.

Le passage d’une valeur supérieure size à la taille réelle des résultats dans un dépassement de buffer mémoire tampon.

Notes

Ces fonctions offrent des versions plus sécurisées de _strdate et _wstrdate. La _strdate_s fonction copie la date système actuelle vers la mémoire tampon pointée par buffer. Il est mis mm/dd/yyen forme, où mm est le mois à deux chiffres, dd est le jour à deux chiffres, et yy est les deux derniers chiffres de l’année. Par exemple, la chaîne 12/05/99 représente le 5 décembre 1999. La mémoire tampon doit comporter au moins neuf caractères.

_wstrdate_s est une version à caractères larges de _strdate_s ; l'argument et la valeur de retour de _wstrdate_s sont des chaînes à caractères larges. Ces fonctions se comportent sinon de façon identique.

Lorsqu’il buffer s’agit d’un NULL pointeur ou size est inférieur à neuf caractères, le gestionnaire de paramètres non valide est appelé. Elle est décrite dans la validation des paramètres. Si l’exécution est autorisée à continuer, ces fonctions retournent -1. Ils ont la valeur errno EINVAL si la mémoire tampon est NULL ou si size elle est inférieure ou égale à 0. Ou bien, ils sont définis errno sur s’ils size sont inférieurs à ERANGE 9.

En C++, l’utilisation de ces fonctions est simplifiée par les surcharges de modèle. Les surcharges peuvent déduire automatiquement la longueur de la mémoire tampon, ce qui élimine la nécessité de spécifier un size argument. Et ils peuvent remplacer automatiquement les fonctions non sécurisées par leurs équivalents plus récents et plus sécurisés. Pour plus d'informations, consultez Sécuriser les surcharges de modèle.

Les versions de bibliothèque de débogage de ces fonctions remplissent d’abord la mémoire tampon avec 0xFE. Pour désactiver ce comportement, utilisez _CrtSetDebugFillThreshold.

Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.

Mappage de routine de texte générique :

Routine TCHAR.H _UNICODE et _MBCS non définis _MBCS défini _UNICODE défini
_tstrdate_s _strdate_s _strdate_s _wstrdate_s

Spécifications

Routine En-tête requis
_strdate <time.h>
_wstrdate <time.h> ou <wchar.h>
_strdate_s <time.h>

Exemple

Consultez l’exemple pour time.

Voir aussi

Gestion des horaires
asctime_s, _wasctime_s
ctime_s, , _ctime32_s, _wctime_s_ctime64_s, , _wctime32_s_wctime64_s
gmtime_s, , _gmtime32_s_gmtime64_s
localtime_s, , _localtime32_s_localtime64_s
mktime, , _mktime32_mktime64
time, , _time32_time64
_tzset