_strtime_s, _wstrtime_s

 

Pour obtenir la dernière documentation sur Visual Studio 2017, consultez Documentation Visual Studio 2017.

L’heure actuelle dans une mémoire tampon de copie. Voici les versions de _strtime, _wstrtime avec des améliorations de sécurité comme décrit dans fonctionnalités de sécurité de la bibliothèque 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, au moins 10 octets, où l’heure sera écrit.

[in] numberOfElements
Taille de la mémoire tampon.

Zéro si l’opération réussit.

Si une condition d’erreur se produit, le Gestionnaire de paramètre non valide est appelé, comme décrit dans Validation de paramètre. La valeur de retour est un code d’erreur en cas de panne. Codes d’erreur sont définis dans ERRNO. H ; consultez le tableau suivant pour les erreurs exacts généré par cette fonction. Pour plus d’informations sur les codes d’erreur, consultez la page errno, constantes.

Conditions d’erreur

buffernumberOfElementsRetournerContenu de buffer
NULL(tout)EINVALNon modifié
Pas NULL (pointant vers la mémoire tampon valide)0EINVALNon modifié
Pas NULL (pointant vers la mémoire tampon valide)0< size="">< 9></ 9>EINVALChaîne vide
Pas NULL (pointant vers la mémoire tampon valide)Taille > 90Heure actuelle au format spécifié dans la section Notes

En transmettant une valeur non NULL non valide pour la mémoire tampon entraîne une violation d’accès si le numberOfElements paramètre est supérieur à 9.

Transmettre une valeur pour numberOfElements qui est supérieure à la taille réelle de la mémoire tampon entraînerait le dépassement de mémoire tampon.

Ces fonctions fournissent des versions plus sécurisées de _strtime et _wstrtime. Le _strtime_s fonction copie l’heure locale actuelle dans la mémoire tampon vers laquelle pointée timestr . L’heure est mis en forme en tant que hh:mm:sshh comprend deux chiffres qui représente l’heure 24 heures, mm comprend deux chiffres représentant les minutes après l’heure, et ss correspond à deux chiffres représentant les secondes. Par exemple, la chaîne 18:23:44 représente 23 minutes et 44 secondes après 6 heures. La mémoire tampon doit être au moins 9 octets de long. la taille réelle est spécifiée par le second paramètre.

_wstrtime est une version à caractères larges de _strtime ; l'argument et la valeur de retour de _wstrtime sont des chaînes à 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 Secure Template Overloads.

Mappage de routines de texte générique :

Routine TCHAR.H_UNICODE et _MBCS non définis_MBCS défini_UNICODE défini
_tstrtime_s_strtime_s_strtime_s_wstrtime_s
RoutineEn-tête requis
_strtime_s<time.h>
_wstrtime_s<time.h>ou<wchar.h></wchar.h></time.h>

Pour plus d'informations sur la compatibilité, voir Compatibilité dans l'introduction.

// 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 );  
  
}  

OS time:            14:37:49  
OS date:            04/25/03  

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
heure, _time32, _time64
_tzset

Afficher: