ctime_s
, _ctime32_s
, _ctime64_s
, _wctime_s
, _wctime32_s
_wctime64_s
Convertono un valore di tempo in una stringa e lo regolano per le impostazioni di fuso orario locale. Queste funzioni sono versioni di ctime
, _ctime64
, _wctime
, _wctime64
con miglioramenti della sicurezza, come descritto in Funzionalità di sicurezza in CRT.
Sintassi
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
Parametri
buffer
Deve essere sufficientemente grande da contenere 26 caratteri. Puntatore al risultato della stringa di caratteri oppure NULL
se:
sourceTime
rappresenta una data precedente alla mezzanotte dell'1 gennaio 1970 (ora UTC).Se si usa
_ctime32_s
o_wctime32_s
esourceTime
rappresenta una data successiva alle 23.59.59 del 18 gennaio 2038 (ora UTC).Se si usa
_ctime64_s
o_wctime64_s
esourceTime
rappresenta una data successiva alle 23.59.59 del 31 dicembre 3000 (ora UTC).Se si usa
_ctime_s
o_wctime_s
, queste funzioni sono wrapper per le funzioni precedenti. Vedere la sezione relativa alle osservazioni.
numberOfElements
Dimensione del buffer.
sourceTime
Puntatore all'ora archiviata.
Valore restituito
Zero in caso di esito positivo. Se si verifica un errore a causa di un parametro non valido, viene richiamato il gestore di parametri non validi, come descritto in Convalida dei parametri. Se l'esecuzione può continuare, viene restituito un codice di errore. I codici di errore sono definiti in ERRNO. H; per un elenco di questi errori, vedere errno
. I codici di errore effettivo generati per ogni condizione di errore vengono visualizzati nella tabella seguente.
Condizioni di errore
buffer |
numberOfElements |
sourceTime |
Restituzione | Valore in buffer |
---|---|---|---|---|
NULL |
qualsiasi | qualsiasi | EINVAL |
Non modificato |
Non NULL (punta alla memoria valida) |
0 | qualsiasi | EINVAL |
Non modificato |
Not NULL |
0< dimensioni < 26 | qualsiasi | EINVAL |
Stringa vuota |
Not NULL |
>= 26 | NULL | EINVAL |
Stringa vuota |
Not NULL |
>= 26 | < 0 | EINVAL |
Stringa vuota |
Osservazioni:
La ctime_s
funzione converte un valore di ora archiviato come time_t
struttura in una stringa di caratteri. Il sourceTime
valore viene in genere ottenuto da una chiamata a time
, che restituisce il numero di secondi trascorsi dalla mezzanotte (00:00:00), 1 gennaio 1970, ora UTC (Coordinated Universal Time). La stringa del valore restituito contiene esattamente 26 caratteri e ha il formato:
Wed Jan 2 02:03:55 1980\n\0
Viene usato un formato 24 ore. Tutti i campi hanno una larghezza costante. Il carattere di nuova riga ('\n') e il carattere null ('\0') occupano le ultime due posizioni della stringa.
La stringa di caratteri convertita viene anche regolata in base alle impostazioni di fuso orario locale. Per informazioni sulla configurazione dell'ora locale, vedere le time
funzioni , _ftime
e localtime
. Per informazioni dettagliate sulla definizione dell'ambiente del fuso orario e delle variabili globali, vedere la _tzset
funzione .
_wctime32_s
e _wctime64_s
sono la versione a caratteri wide di _ctime32_s
e _ctime64_s
; restituiscono un puntatore alla stringa di caratteri wide. In caso contrario, _ctime64_s
, _wctime32_s
e _wctime64_s
si comportano in modo identico a _ctime32_s
.
ctime_s
è una funzione inline equivalente a _ctime64_s
e time_t
è equivalente a __time64_t
. Se è necessario forzare il compilatore in modo che interpreti time_t
come il vecchio time_t
a 32 bit, è possibile definire _USE_32BIT_TIME_T
. Questa macro restituisce ctime_s
_ctime32_s
. Non è consigliabile, perché l'applicazione potrebbe non riuscire dopo il 18 gennaio 2038 e non è consentita nelle piattaforme a 64 bit.
In C++ l'uso di queste funzioni è semplificato dagli overload dei modelli. Gli overload possono dedurre la lunghezza del buffer automaticamente, eliminando la necessità di specificare un argomento di dimensione. Per altre informazioni, vedere Proteggere gli overload dei modelli.
Le versioni della libreria di debug di queste funzioni riempiono prima di tutto il buffer con 0xFE. Per disabilitare questo comportamento, usare _CrtSetDebugFillThreshold
.
Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificare questo comportamento, vedere Stato globale in CRT.
Mapping di routine di testo generico
Routine TCHAR.H | _UNICODE e _MBCS non definito |
_MBCS definito |
_UNICODE definito |
---|---|---|---|
_tctime_s |
ctime_s |
ctime_s |
_wctime_s |
_tctime32_s |
_ctime32_s |
_ctime32_s |
_wctime32_s |
_tctime64_s |
_ctime64_s |
_ctime64_s |
_wctime64_s |
Requisiti
Ciclo | Intestazione obbligatoria |
---|---|
ctime_s , _ctime32_s , _ctime64_s |
<time.h> |
_wctime_s , _wctime32_s , _wctime64_s |
<time.h> o <wchar.h> |
Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).
Librerie
Tutte le versioni delle librerie di runtime C.
Esempio
// 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 );
}
The time is Fri Apr 25 13:03:39 2003
Vedi anche
Gestione orari
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
time
, _time32
, _time64