Partager via


asctime_s, _wasctime_s

convertissez une structure de temps d' tm à une chaîne de caractères.Ces fonctions sont des versions d' asctime, _wasctime avec des améliorations de sécurité comme décrit dans Fonctionnalités de sécurité du CRT.

errno_t asctime_s( 
   char* buffer,
   size_t numberOfElements,
   const struct tm *_tm 
);
errno_t _wasctime_s( 
   wchar_t* buffer,
   size_t numberOfElements
   const struct tm *_tm 
);
template <size_t size>
errno_t asctime_s( 
   char (&buffer)[size],
   const struct tm *_tm 
); // C++ only
template <size_t size>
errno_t _wasctime_s( 
   wchar_t (&buffer)[size],
   const struct tm *_tm 
); // C++ only

Paramètres

  • buffer
    [out] Un pointeur vers une mémoire tampon pour stocker le résultat de chaînes.Cette fonction a un pointeur vers un emplacement mémoire valide avec une taille spécifiée par numberOfElements.

  • numberOfElements
    [in] La taille de la mémoire tampon utilisée pour stocker le résultat.

  • _tm
    [in] structure d'heure/date.Cette fonction a un pointeur vers un objet valide d' structtm .

Valeur de retour

Zéro si l'opération a réussi.S'il existe un échec, le gestionnaire de paramètre non valide est appelé, comme décrit dans Validation des paramètres.Si est autorisé à l'exécution de se poursuivre, la valeur de retour est un code d'erreur.Les codes d'erreur sont définis dans ERRNO.H.Pour plus d'informations, consultez constantes d'errno.Les codes d'erreur retournés réels pour chaque condition d'erreur sont présentés dans le tableau suivant.

conditions d'erreur

buffer

numberOfElements

tm

Return

valeur dans buffer

NULL

Any

Any

EINVAL

non modifié

PasNULL (pointe vers une mémoire non valide)

0

Any

EINVAL

non modifié

pas NULL

0< taille < 26

Any

EINVAL

Chaîne vide

pas NULL

>= 26

NULL

EINVAL

Chaîne vide

pas NULL

>= 26

Structure non valide de temps ou valeurs hors limites pour les composants du temps

EINVAL

Chaîne vide

[!REMARQUE]

Les conditions d'erreur pour wasctime_s sont semblables à asctime_s excepté que la limite de taille est mesurée en les mots.

Notes

La fonction d' asctime convertit une heure enregistré en tant que structure à une chaîne de caractères.La valeur d' _tm est généralement obtenue à partir d'un appel à gmtime ou à localtime.les deux fonctions peuvent être utilisées pour compléter une structure d' tm , comme défini dans TIME.H.

membre de timeptr

Valeur

tm_hour

Heures depuis minuit (0-23)

tm_isdst

Positif si l'heure d'été est activé ; 0 si l'heure d'été n'est pas appliqué ; négatif si l'état d'heure d'été est inconnu.La bibliothèque Runtime C utilise des règles des états-unis pour implémenter le calcul de l'heure d' (DST)été.

tm_mday

jour du mois (1-31)

tm_min

minutes après l'heure (0-59)

tm_mon

mois (0-11 ; janvier = 0)

tm_sec

secondes après la minute (0-59)

tm_wday

jour de la semaine (0-6 ; dimanche = 0)

tm_yday

jour de l'année (0-365 ; 1er janvier = 0)

tm_year

Année (année en cours moins 1900)

La chaîne de caractères convertie est également ajustée en fonction de les paramètres de fuseau horaire local.Voir time, _time32, _time64, _ftime, _ftime32, _ftime64, et les fonctions de localtime_s, _localtime32_s, _localtime64_s pour plus d'informations sur la configuration de l'heure locale et une fonctionnalité de _tzset pour plus d'informations sur la définition de l'environnement et les variables globales de fuseau horaire.

Le résultat de chaîne produit par asctime_s contient exactement 26 caractères et a la forme Wed Jan 02 02:03:55 1980\n\0.Une horloge au format 24 heures est utilisé.tous les champs ont une largeur constante.Le caractère de saut de ligne et le caractère NULL occupent les deux dernières positions de la chaîne.La valeur passée comme deuxième paramètre doit être au moins cela grande.S'il est inférieur, le code d'erreur, EINVAL, est retourné.

_wasctime_s est une version à caractère élargi d' asctime_s._wasctime_s et asctime_s se comportent de sinon.

mappage de routines de texte générique

routine de TCHAR.H

_MBCS & de _UNICODE non défini

_MBCS défini

_UNICODE défini

_tasctime_s

asctime_s

asctime_s

_wasctime_s

En C++, à l'aide de ces fonctions est simplifié par des surcharges de modèle ; les surcharges peuvent également déduire la longueur de la mémoire tampon automatiquement, en éliminant le besoin de spécifier un argument de taille.Pour plus d'informations, consultez Surcharges sécurisées de modèle.

Configuration requise

routine

en-tête requis

asctime_s

<time.h>

_wasctime_s

<time.h> ou <wchar.h>

Sécurité

Si le pointeur de mémoire tampon n'est pas NULL et le pointeur n'indique pas une mémoire tampon valide, la fonction remplace celui qui se trouve à l'emplacement.Cela peut également entraîner une violation d'accès.

dépassement de mémoire tampon peut se produire si l'argument de taille passé est supérieur à la grandeur réelle de la mémoire tampon.

Exemple

Ce programme place l'heure système dans long aclockentier, la traduction dans la structure newtime puis le convertit au format de chaîne pour la sortie, à l'aide de la fonction d' asctime_s .

// crt_asctime_s.c
#include <time.h>
#include <stdio.h>

struct tm newtime;
__time32_t aclock;

int main( void )
{
   char buffer[32];
   errno_t errNum;
   _time32( &aclock );   // Get time in seconds.
   _localtime32_s( &newtime, &aclock );   // Convert time to struct tm form.

   // Print local time as a string.

   errNum = asctime_s(buffer, 32, &newtime);
   if (errNum)
   {
       printf("Error code: %d", (int)errNum);
       return 1;
   }
   printf( "Current date and time: %s", buffer );
   return 0;
}
  

Équivalent .NET Framework

Voir aussi

Référence

Gestion de la durée

ctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s, _wctime64_s

_ftime, _ftime32, _ftime64

gmtime_s, _gmtime32_s, _gmtime64_s

localtime_s, _localtime32_s, _localtime64_s

time, _time32, _time64

_tzset