Partager via


_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

Gestion du temps

asctime_s, _wasctime_s

ctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s, _wctime64_s

gmtime_s, _gmtime32_s, _gmtime64_s

localtime_s, _localtime32_s, _localtime64_s

mktime, _mktime32, _mktime64

time, _time32, _time64

_tzset