Condividi tramite


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 e sourceTime rappresenta una data successiva alle 23.59.59 del 18 gennaio 2038 (ora UTC).

  • Se si usa _ctime64_s o _wctime64_s e sourceTime 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 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.

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( &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

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