Partager via


ctime_s, , _ctime32_s, _wctime_s_ctime64_s, , _wctime32_s_wctime64_s

Convertissent une valeur de temps en une chaîne et ajustent les paramètres de fuseau horaire local. Ces fonctions sont des versions de , , , _wctime_wctime64avec des améliorations de sécurité, comme décrit dans les fonctionnalités de sécurité dans le CRT. _ctime64ctime

Syntaxe

errno_t ctime_s(
   char* buffer,
   size_t numberOfElements,
   const time_t *sourceTime
);
errno_t _ctime32_s(
   char* buffer,
   size_t numberOfElements,
   const __time32_t *sourceTime
);
errno_t _ctime64_s(
   char* buffer,
   size_t numberOfElements,
   const __time64_t *sourceTime )
;
errno_t _wctime_s(
   wchar_t* buffer,
   size_t numberOfElements,
   const time_t *sourceTime
);
errno_t _wctime32_s(
   wchar_t* buffer,
   size_t numberOfElements,
   const __time32_t *sourceTime
);
errno_t _wctime64_s(
   wchar_t* buffer,
   size_t numberOfElements,
   const __time64_t *sourceTime
);
template <size_t size>
errno_t _ctime32_s(
   char (&buffer)[size],
   const __time32_t *sourceTime
); // C++ only
template <size_t size>
errno_t _ctime64_s(
   char (&buffer)[size],
   const __time64_t *sourceTime
); // C++ only
template <size_t size>
errno_t _wctime32_s(
   wchar_t (&buffer)[size],
   const __time32_t *sourceTime
); // C++ only
template <size_t size>
errno_t _wctime64_s(
   wchar_t (&buffer)[size],
   const __time64_t *sourceTime
); // C++ only

Paramètres

buffer
Doit être suffisamment grand pour contenir 26 caractères. Pointeur vers le résultat de la chaîne de caractères, ou NULL si :

  • sourceTime représente une date antérieure au 1er janvier 1970 à minuit, UTC ;

  • si vous utilisez _ctime32_s ou _wctime32_s et que sourceTime représente une date postérieure au 18 janvier 2038 à 23:59:59, heure UTC ;

  • si vous utilisez _ctime64_s ou _wctime64_s et que sourceTime représente une date postérieure au 31 décembre 3000 à 23:59:59, heure UTC ;

  • Si vous utilisez _ctime_s ou _wctime_s, ces fonctions sont des wrappers pour les fonctions précédentes. Consultez la section Notes.

numberOfElements
Taille de la mémoire tampon.

sourceTime
Pointeur désignant la valeur de temps stockée.

Valeur retournée

Zéro si l’opération aboutit. En cas d’échec en raison d’un paramètre non valide, le gestionnaire de paramètres non valide est appelé, comme décrit dans la validation des paramètres. Si l’exécution est autorisée à se poursuivre, un code d’erreur est retourné. Les codes d’erreur sont définis dans ERRNO. H; pour obtenir la liste de ces erreurs, consultez errno. Les codes d’erreur levés pour chaque condition d’erreur sont répertoriés dans le tableau suivant.

Conditions d’erreur

buffer numberOfElements sourceTime Retour Valeur dans buffer
NULL n'importe laquelle n'importe laquelle EINVAL Non modifié
Pas NULL (pointe vers une mémoire valide) 0 n'importe laquelle EINVAL Non modifié
Pas NULL 0< taille < 26 n'importe laquelle EINVAL Chaîne vide
Pas NULL >= 26 NULL EINVAL Chaîne vide
Pas NULL >= 26 < 0 EINVAL Chaîne vide

Notes

La ctime_s fonction convertit une valeur de temps stockée sous forme time_t de structure en chaîne de caractères. La sourceTime valeur est généralement obtenue à partir d’un appel à time, qui retourne le nombre de secondes écoulées depuis minuit (00:00:00), le 1er janvier 1970, temps universel coordonné (UTC). La chaîne de valeur de retour contient exactement 26 caractères et présente la forme suivante :

Wed Jan 2 02:03:55 1980\n\0

Une horloge de 24 heures est utilisée. Tous les champs ont une largeur constante. Le caractère de saut de ligne (« \n ») et le caractère null (« \0 ») occupent les deux dernières positions de la chaîne.

La chaîne de caractères convertie est également ajustée en fonction des paramètres de fuseau horaire local. Pour plus d’informations sur la configuration de l’heure locale, consultez les fonctions et les timefonctions_ftimelocaltime. Pour plus d’informations sur la définition de l’environnement de fuseau horaire et des variables globales, consultez la _tzset fonction.

_wctime32_s et _wctime64_s sont la version à caractères larges de _ctime32_s et _ctime64_s ; ils retournent un pointeur désignant une chaîne à caractères larges. Sinon, _ctime64_s, _wctime32_s et _wctime64_s se comportent de la même façon que _ctime32_s.

ctime_s est une fonction inline qui prend la valeur _ctime64_s, tandis que time_t équivaut à __time64_t. Si vous devez forcer le compilateur à interpréter time_t comme ancien time_t32 bits, vous pouvez définir _USE_32BIT_TIME_T. Cette macro provoque ctime_s l’évaluation _ctime32_s. Nous ne le recommandons pas, car votre application peut échouer après le 18 janvier 2038 et elle n’est pas autorisée sur les plateformes 64 bits.

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 évite d’avoir à spécifier un argument de taille. 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.

Mappages de routines de texte générique

Routine TCHAR.H _UNICODE et _MBCS non définis _MBCS défini _UNICODE défini
_tctime_s ctime_s ctime_s _wctime_s
_tctime32_s _ctime32_s _ctime32_s _wctime32_s
_tctime64_s _ctime64_s _ctime64_s _wctime64_s

Spécifications

Routine En-tête requis
ctime_s, , _ctime32_s_ctime64_s <time.h>
_wctime_s, , _wctime32_s_wctime64_s <time.h> ou <wchar.h>

Pour plus d’informations sur la compatibilité, consultez Compatibility.

Bibliothèques

Toutes les versions des bibliothèques Runtime C.

Exemple

// crt_wctime_s.c
// This program gets the current
// time in time_t form and then uses _wctime_s to
// display the time in string form.

#include <time.h>
#include <stdio.h>

#define SIZE 26

int main( void )
{
   time_t ltime;
   wchar_t buf[SIZE];
   errno_t err;

   time( &ltime );

   err = _wctime_s( buf, SIZE, &ltime );
   if (err != 0)
   {
      printf("Invalid Arguments for _wctime_s. Error Code: %d\n", err);
   }
   wprintf_s( L"The time is %s\n", buf );
}
The time is Fri Apr 25 13:03:39 2003

Voir aussi

Gestion des horaires
asctime_s, _wasctime_s
ctime, , _ctime32, _wctime_ctime64, , _wctime32_wctime64
_ftime, , _ftime32_ftime64
gmtime_s, , _gmtime32_s_gmtime64_s
localtime_s, , _localtime32_s_localtime64_s
time, , _time32_time64