ctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s, _wctime64_s
Convertis une information horaire en une chaîne de caractères et l'ajuste aux paramètres de fuseau horaire locaux. Ce sont des versions de ctime, _ctime64, _wctime, _wctime64 avec les améliorations de sécurité comme décrit dans Fonctionnalités de sécurité dans le 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 grand pour stocker 26 caractères. Pointeur vers le résultat de chaîne de caractères, ou NULLsi :time représente une date de minuit, le 1er janvier 1970, UTC.
Si vous utilisez _ctime32_s ou _wctime32_s et time représente une date après 3h14 7s : Le 19 janvier 2038.
Si vous utilisez _ctime64_s ou _wctime64_s et time représente une date après 23h59 59s : Le 31 décembre 3000, 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.
[in] numberOfElements
Taille de la mémoire tampon.[in]imet
Pointeur vers le l'horaire stockée.
Valeur de retour
Zéro en cas de réussite. En cas de é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 de continuer, le code d'erreur est retourné. Les codes d'erreur sont définis dans Errno.h ; pour une liste de ces erreurs, consultez l'errno. Les codes d'erreur réels retournés pour chaque condition d'erreur sont présentés dans le tableau ci-dessous.
Conditions d'erreur
buffer |
numberOfElements |
time |
Return |
Valeur dans buffer |
---|---|---|---|---|
NULL |
any |
any |
EINVAL |
Non modifié |
Non NULL (pointe vers la mémoire valide) |
0 |
any |
EINVAL |
Non modifié |
Non NULL |
0< size < 26 |
any |
EINVAL |
Chaîne vide |
Non NULL |
>= 26 |
NULL |
EINVAL |
Chaîne vide |
Non NULL |
>= 26 |
< 0 |
EINVAL |
Chaîne vide |
Notes
La fonction ctime_s convertit une valeur d'heure signalée comme structure time_t en une chaîne de caractères. La valeur de time est généralement obtenue à partir d'un appel à time, qui retourne le nombre de secondes s'est écoulée depuis minuit (0h00 : 00), le 1er janvier 1970, temps universel coordonné (UTC). La chaîne de valeur retournée contient exactement 26 caractères et se présente sous la forme suivante :
Wed Jan 02 02:03:55 1980\n\0
Une horloge de 24 heures est utilisé. Tous les champs ont une largeur constante. Le caractère 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 paramétrée conformément aux paramètres de fuseau horaire. Consultez les fonctions time, _ftime, etlocaltime32_s pour plus d'informations sur la configuration de l'heure locale, et la fonction _tzset pour plus d'informations sur la définition de l'environnement des fuseaux horaires et des variables globales.
_wctime32_s et _wctime64_s forment une version à caractères larges de _ctime32_s et _ctime64_s ; retournent un pointeur vers une chaîne de caractères larges. Sinon, _ctime64_s et _wctime32_s et _wctime64_s se comportent de la même façon.
ctime_s est une fonction inline qui prend _ctime64_s, et time_t équivaut à __time64_t. Si vous devez forcer le compilateur à interpréter time_t en ancien 32 bit time_t, vous pouvez définir _USE_32BIT_TIME_T. Cela fait que ctime_s évalue en _ctime32_s. Cela n'est pas recommandé 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 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 Sécuriser les surcharges de modèle.
Mappages de routines de texte générique
Routine TCHAR.H |
_UNICODE & _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 |
Configuration requise
Routine |
En-tête requis |
---|---|
ctime_s, _ctime32_s, _ctime64_s |
<time.h> |
_wctime_s, _wctime32_s, _wctime64_s |
<time.h> or <wchar.h> |
Pour plus d'informations sur la compatibilité, consultez Compatibilité dans l'introduction.
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( <ime );
err = _wctime_s( buf, SIZE, <ime );
if (err != 0)
{
printf("Invalid Arguments for _wctime_s. Error Code: %d\n", err);
}
wprintf_s( L"The time is %s\n", buf );
}
Résultat de l'exemple
The time is Fri Apr 25 13:03:39 2003
Équivalent .NET Framework
Voir aussi
Référence
ctime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64
gmtime_s, _gmtime32_s, _gmtime64_s