ctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s, _wctime64_s
Converte un valore di ora in una stringa e lo regola in base alle impostazioni di fuso orario locale. Queste sono versioni di ctime, _ctime64, _wctime, _wctime64 con i miglioramenti alla sicurezza, come descritto in Funzionalità di sicurezza in 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
Parametri
[out] buffer
Deve essere sufficiente per contenere 26 caratteri. Un puntatore al risultato della stringa di caratteri, o a NULLse:time rappresenta una data precedente alla mezzanotte del 1° gennaio 1970, UTC.
Se si utilizza _ctime32_s o _wctime32_s e time rappresenta una data successiva al 19 gennaio 2038, alle ore 03:14:07.
Se si utilizza _ctime64_s o _wctime64_s e time rappresenta una data successiva al 31 dicembre 3000 alle ore 23:59:59, UTC.
Se si utilizza _ctime_s o _wctime_s, queste funzioni sono wrapper alle funzioni precedenti. Vedere la sezione Osservazioni.
[in] numberOfElements
Dimensione del buffer.[in] time
Puntatore all'ora archiviata.
Valore restituito
Zero se ha esito positivo. Se è presente un errore a causa di un parametro non valido, il gestore del parametro non valido viene richiamato, come descritto in Convalida dei parametri. Se l'esecuzione può continuare, viene restituito un codice di errore. I codici di errore vengono definiti in ERRNO.H; per un elenco di questi errori, vedere errno. I codici di errore generati per ogni condizione di errore vengono mostrati nella tabella seguente.
Condizioni di errore
buffer |
numberOfElements |
time |
Restituzione |
Valore in buffer |
---|---|---|---|---|
NULL |
any |
any |
EINVAL |
Non modificato |
Non NULL (punta alla memoria valida) |
0 |
any |
EINVAL |
Non modificato |
Non NULL |
0< dimensione < 26 |
any |
EINVAL |
Stringa vuota. |
Non NULL |
>= 26 |
NULL |
EINVAL |
Stringa vuota. |
Non NULL |
>= 26 |
< 0 |
EINVAL |
Stringa vuota. |
Note
La funzione ctime_s converte un valore di ora archiviato tramite una struttura time_t in una stringa di caratteri. Il valore time in genere viene ottenuto da una chiamata a time, che restituisce il numero di secondi trascorsi dalla mezzanotte (00:00:00) del 1° gennaio 1970, formato UTC (coordinated universal time). La stringa del valore restituito contiene esattamente 26 caratteri e ha forma:
Wed Jan 02 02:03:55 1980\n\0
Viene utilizzato un orario nel formato a 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.
Una stringa di caratteri convertita viene regolata in base alle impostazioni del fuso orario locali. Vedere le funzioni time, _ftime, e localtime32_s per informazioni sulla configurazione dell'ora locale, e la funzione _tzset per informazioni sulla definizione dell'ambiente di fuso orario e delle variabili globali.
_wctime32_s e _wctime64_s sono versioni a caratteri wide di _ctime32_s e _ctime64_s; restituiscono un puntatore a una stringa a 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 che valuta _ctime64_s e time_t equivale a __time64_t. Se è necessario forzare il compilatore ad interpretare time_t come il vecchio time_t a 32 bit, è possibile definire _USE_32BIT_TIME_T. In questo modo ctime_s valuterà _ctime32_s. Questa operazione non è consigliabile perché l'applicazione fallirebbe dopo il 18 gennaio 2038, e ciò non è consentito su piattaforme a 64 bit.
In C++, l'utilizzo di queste funzioni viene semplificato da overload del modello; gli overload possono dedurre la lunghezza del buffer automaticamente, eliminando la necessità di specificare un argomento per la dimensione. Per ulteriori informazioni, vedere Overload di modelli sicuri.
Mapping di routine di testo generico
Routine TCHAR.H |
_UNICODE & _MBCS non definiti |
_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
Routine |
Intestazione obbligatoria |
---|---|
ctime_s, _ctime32_s, _ctime64_s |
<time.h> |
_wctime_s, _wctime32_s, _wctime64_s |
<time.h> o <wchar.h> |
Per ulteriori informazioni sulla compatibilità, vedere Compatibilità nell'Introduzione.
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 );
}
Esempio di output
The time is Fri Apr 25 13:03:39 2003
Equivalente .NET Framework
Vedere anche
Riferimenti
ctime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64
gmtime_s, _gmtime32_s, _gmtime64_s