Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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( // See note in remarks section about linkage
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( // See note in remarks section about linkage
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:
sourceTimerappresenta una data precedente alla mezzanotte dell'1 gennaio 1970 (ora UTC).Se si usa
_ctime32_so_wctime32_sesourceTimerappresenta una data successiva alle 23.59.59 del 18 gennaio 2038 (ora UTC).Se si usa
_ctime64_so_wctime64_sesourceTimerappresenta una data successiva alle 23.59.59 del 31 dicembre 3000 (ora UTC).Se si usa
_ctime_so_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 |
Non NULL |
0< dimensioni < 26 | qualsiasi | EINVAL |
Stringa vuota |
Non NULL |
>= 26 | NULL | EINVAL |
Stringa vuota |
Non 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 timefunzioni , _ftimee 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_ta 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.
Annotazioni
Quando si usa Windows SDK versione 10.0.26100.6901 e Visual Studio 2026 o versioni successive insieme e ctime_s_wctime_s non sono più static inline (collegamento interno). Sono invece inline (collegamento esterno).
Per tornare al comportamento precedente, #define _STATIC_INLINE_UCRT_FUNCTIONS=1 prima di includere eventuali intestazioni CRT. Per impostazione predefinita, il valore di _STATIC_INLINE_UCRT_FUNCTIONS è 0.
Questa modifica aumenta la conformità UCRT allo standard C++ e migliora la compatibilità con i moduli C++.
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