Nous recommandons d’utiliser Visual Studio 2017

ctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s, _wctime64_s

 

Date de publication : novembre 2016

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

Convertir une valeur d’heure en une chaîne et ajuster les paramètres de fuseau horaire local. Voici les versions de ctime, _ctime64, _wctime, _wctime64 avec des améliorations de sécurité comme décrit dans fonctionnalités de sécurité de la bibliothèque CRT.

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

Paramètres

[out] buffer
Doit être suffisamment grande pour contenir les 26 caractères. Un pointeur vers le résultat de chaîne de caractères, ou NULLsi :

  • timereprésente une date antérieure au 1er janvier 1970 à minuit UTC.

  • Si vous utilisez _ctime32_s ou _wctime32_s et time représente une date postérieure à 23:59:59 18 janvier 2038, UTC.

  • Si vous utilisez _ctime64_s ou _wctime64_s et time représente une date postérieure à 23:59:59 le 31 décembre 3000, UTC.

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

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

[in] time
Pointeur vers l’heure stockée.

Zéro si l’opération réussit. S’il existe un échec en raison d’un paramètre non valide, le Gestionnaire de paramètre non valide est appelé, comme décrit dans Validation de paramètre. Si l’exécution est autorisée à se poursuivre, un code d’erreur est retourné. Codes d’erreur sont définis dans ERRNO. H ; Pour obtenir la liste de ces erreurs, consultez la page errno. Les codes d’erreur levées pour chaque condition d’erreur sont affichés dans le tableau suivant.

buffernumberOfElementstimeRetournerValeur debuffer
NULLanyanyEINVALNon modifié
Pas NULL (pointe vers la mémoire valide)0anyEINVALNon modifié
PasNULL0< size="">< 26></ 26>anyEINVALChaîne vide
PasNULL>= 26NULLEINVALChaîne vide
PasNULL>= 26< 0EINVALChaîne vide

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

Wed Jan 02 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 nouvelle 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. Consultez le time, _ftime, et localtime32_s fonctions pour plus d’informations sur la configuration de l’heure locale et la _tzset (fonction) pour plus d’informations sur la définition de l’environnement de fuseau horaire et des variables globales.

_wctime32_set _wctime64_s sont la version à caractères larges de _ctime32_s et _ctime64_s, qui retourne un pointeur vers une chaîne à caractères larges. Dans le cas contraire, _ctime64_s, _wctime32_s, et _wctime64_s se comportent de la même manière que _ctime32_s.

ctime_sest une fonction inline qui prend la valeur _ctime64_s et time_t équivaut à __time64_t. Si vous devez forcer le compilateur à interpréter time_t l’ancien 32-bit time_t, vous pouvez définir _USE_32BIT_TIME_T. Cette action provoquerait ctime_s pour prendre la valeur _ctime32_s. Cela est déconseillé, car votre application peut échouer après le 18 janvier 2038, et il 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 la longueur de la mémoire tampon automatiquement, en éliminant le besoin de spécifier un argument taille. Pour plus d'informations, consultez Secure Template Overloads.

Mappages de routines de texte générique

Routine TCHAR.H_UNICODE et _MBCS non définis_MBCS défini_UNICODE défini
_tctime_sctime_sctime_s_wctime_s
_tctime32_s_ctime32_s_ctime32_s_wctime32_s
_tctime64_s_ctime64_s_ctime64_s_wctime64_s
RoutineEn-tête requis
ctime_s,

 _ctime32_s,

 _ctime64_s
<time.h>
_wctime_s,

 _wctime32_s,

 _wctime64_s
<time.h>ou<wchar.h></wchar.h></time.h>

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

Toutes les versions des bibliothèques Runtime C.

// 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  

Gestion du temps
asctime_s, _wasctime_s
CTime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64
_ftime, _ftime32, _ftime64
gmtime_s, _gmtime32_s, _gmtime64_s
localtime_s, _localtime32_s, _localtime64_s
heure, _time32, _time64

Afficher: