_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/yy
en 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