_strtime_s, _wstrtime_s
Copiez l'heure actuelle vers une mémoire tampon. Il s'agit de versions de _strtime, _wstrtime avec des améliorations de sécurité, comme décrit dans Fonctionnalités de sécurité dans le CRT.
errno_t _strtime_s(
char *buffer,
size_t numberOfElements
);
errno_t _wstrtime_s(
wchar_t *buffer,
size_t numberOfElements
);
template <size_t size>
errno_t _strtime_s(
char (&buffer)[size]
); // C++ only
template <size_t size>
errno_t _wstrtime_s(
wchar_t (&buffer)[size]
); // C++ only
Paramètres
[out] buffer
Une mémoire tampon, d'au moins 10 octets, où le temps sera écrit.[in] numberOfElements
Taille de la mémoire tampon.
Valeur de retour
Zéro en cas de réussite.
Si une erreur advient, le gestionnaire de paramètres invalides est appelé, comme décrit dans Validation de paramètre. La valeur de retour est un code d'erreur en cas de échec. Les codes d'erreur sont définis dans ERRNO.H ; consultez le tableau suivant pour les erreurs exactes générées par cette fonction. Pour plus d'information sur le codes d'erreur, consultez errno Constants.
Conditions d'erreur
buffer |
numberOfElements |
Return |
Contenu de buffer. |
---|---|---|---|
NULL |
(Indifférent) |
EINVAL |
Non modifié |
Non NULL (pointeur vers la mémoire tampon valide) |
0 |
EINVAL |
Non modifié |
Non NULL (pointeur vers la mémoire tampon valide) |
0 < size < 9 |
EINVAL |
Chaîne vide |
Non NULL (pointeur vers la mémoire tampon valide) |
Size > 9 |
0 |
Heure actuelle au format spécifié dans les notes |
Problèmes de sécurité
Transmettre dans une valeur non-NULL invalide pour a mémoire tampon engendrera une violation des droits d'accès si le paramètre <parameterReference>numberOfElements</parameterReference> est plus grand que 9.
Passer une valeur pour numberOfElements qui est plus grande que la taille actuelle de la mémoire tampon engendrera un dépassement de capacité de la mémoire tampon.
Notes
Ces fonctions fournissent des versions plus sécurisées de_strtime et de_wstrtime. La fonction _strtime_s copie l'heure locale actuelle dans la mémoire tampon désignée par timestr*.* L'heure est mise sous la forme hh:mm:ss où hh sont deux chiffres qui représentent l'heure dans la notation horaire sur 24 heures, mm sont deux chiffres qui représentent les minutes après l'heure, et ss sont deux chiffres représentant les secondes. Par exemple, la chaîne 18:23:44 représente 23 minutes et 44 secondes après 18h La mémoire tampon doit être au moins de 9 octets ; la taille réelle est spécifiée par le deuxième paramètre.
_wstrtime est une version caractères larges de _strtime; l'argument et la valeur de retour de _wstrtime sont des chaînes de caractères larges. Ces fonctions se comportent sinon de façon identique.
En C++, l'utilisation de ces fonctions est simplifiée par les surcharges de modèle ; les surcharges peuvent déduire la longueur de la mémoire tampon automatiquement (ce qui évite d'avoir à spécifier un argument taille) et peuvent remplacer automatiquement les fonctions plus anciennes et non sécurisées par leurs équivalentes plus récentes et sécurisées. Pour plus d'informations, consultez Sécuriser les surcharges de modèle.
Mappage de routines de texte générique
Routine TCHAR.H |
_UNICODE & _MBCS non définis |
_MBCS défini |
_UNICODE défini |
---|---|---|---|
_tstrtime_s |
_strtime_s |
_strtime_s |
_wstrtime_s |
Configuration requise
Routine |
En-tête requis |
---|---|
_strtime_s |
<time.h> |
_wstrtime_s |
<time.h> or <wchar.h> |
Pour plus d'informations sur la compatibilité, consultez Compatibilité dans l'introduction.
Exemple
// strtime_s.c
#include <time.h>
#include <stdio.h>
int main()
{
char tmpbuf[9];
errno_t err;
// Set time zone from TZ environment variable. If TZ is not set,
// the operating system is queried to obtain the default value
// for the variable.
//
_tzset();
// Display operating system-style date and time.
err = _strtime_s( tmpbuf, 9 );
if (err)
{
printf("_strdate_s failed due to an invalid argument.");
exit(1);
}
printf( "OS time:\t\t\t\t%s\n", tmpbuf );
err = _strdate_s( tmpbuf, 9 );
if (err)
{
printf("_strdate_s failed due to an invalid argument.");
exit(1);
}
printf( "OS date:\t\t\t\t%s\n", tmpbuf );
}
Équivalent .NET Framework
Voir aussi
Référence
ctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s, _wctime64_s
gmtime_s, _gmtime32_s, _gmtime64_s