_strtime_s
, _wstrtime_s
Copia l'ora corrente in un buffer. Queste funzioni sono versioni di , _wstrtime
con miglioramenti della_strtime
sicurezza, come descritto in Funzionalità di sicurezza in CRT.
Sintassi
errno_t _strtime_s(
char *buffer,
size_t numberOfElements
);
errno_t _wstrtime_s(
wchar_t *buffer,
size_t numberOfElements
);
template <size_t size>
errno_t _strtime_s(
char (&buffer)[size]
); // C++ only
template <size_t size>
errno_t _wstrtime_s(
wchar_t (&buffer)[size]
); // C++ only
Parametri
buffer
Buffer con una lunghezza di almeno 10 byte in cui verrà scritta l'ora.
numberOfElements
Dimensione del buffer.
Valore restituito
Zero in caso di esito positivo.
Se si verifica una condizione di errore, viene richiamato il gestore di parametri non validi, come descritto in Convalida dei parametri. Il valore restituito è un codice di errore in caso di errore. I codici di errore sono definiti in ERRNO.H. Vedere la tabella seguente per gli errori esatti generati da questa funzione. Per altre informazioni sui codici di errore, vedere errno
costanti.
Condizioni di errore
buffer |
numberOfElements |
Restituzione | Contenuto di buffer |
---|---|---|---|
NULL |
(qualsiasi) | EINVAL |
Non modificato |
Non NULL (che punta a un buffer valido) |
0 | EINVAL |
Non modificato |
Non NULL (che punta a un buffer valido) |
0 < dimensioni < 9 | EINVAL |
Stringa vuota |
Non NULL (che punta a un buffer valido) |
Dimensioni > 9 | 0 | Ora corrente, formattata come specificato nella sezione Note |
Problemi di sicurezza
Se il numberOfElements
parametro è maggiore di 9, il passaggio di un valore nonNULL
valido per il buffer genererà una violazione di accesso.
Il passaggio di un valore per numberOfElements
maggiore delle dimensioni effettive del buffer causerà un sovraccarico del buffer.
Osservazioni:
Queste funzioni sono versioni più sicure di _strtime
e _wstrtime
. La _strtime_s
funzione copia l'ora locale corrente nel buffer a buffer
cui punta . L'ora viene formattata come hh:mm:ss dove hh
è costituito da due cifre che rappresentano l'ora nella notazione di 24 ore, mm
è costituito da due cifre che rappresentano i minuti precedenti l'ora e ss
rappresenta due cifre che rappresentano i secondi. Ad esempio, la stringa 18:23:44 rappresenta 23 minuti e 44 secondi dopo le 6.00. Il buffer deve avere una lunghezza di almeno 9 byte; la dimensione effettiva viene specificata dal secondo parametro.
_wstrtime_s
è una versione a caratteri wide di _strtime_s
. L'argomento e il valore restituito di _wstrtime_s
sono stringhe a caratteri wide. A parte ciò, queste funzioni si comportano in modo identico.
In C++ l'utilizzo 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) e possono sostituire automaticamente le funzioni precedenti e non sicure con le controparti più recenti e sicure. 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 |
---|---|---|---|
_tstrtime_s |
_strtime_s |
_strtime_s |
_wstrtime_s |
Requisiti
Ciclo | Intestazione obbligatoria |
---|---|
_strtime_s |
<time.h> |
_wstrtime_s |
<time.h> o <wchar.h> |
Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).
Esempio
// strtime_s.c
#include <time.h>
#include <stdio.h>
int main()
{
char tmpbuf[9];
errno_t err;
// Set time zone from TZ environment variable. If TZ is not set,
// the operating system is queried to obtain the default value
// for the variable.
//
_tzset();
// Display operating system-style date and time.
err = _strtime_s( tmpbuf, 9 );
if (err)
{
printf("_strdate_s failed due to an invalid argument.");
exit(1);
}
printf( "OS time:\t\t\t\t%s\n", tmpbuf );
err = _strdate_s( tmpbuf, 9 );
if (err)
{
printf("_strdate_s failed due to an invalid argument.");
exit(1);
}
printf( "OS date:\t\t\t\t%s\n", tmpbuf );
}
OS time: 14:37:49
OS date: 04/25/03
Vedi anche
Gestione orari
asctime_s
, _wasctime_s
ctime_s
, _ctime32_s
, _ctime64_s
, _wctime_s
, _wctime32_s
_wctime64_s
gmtime_s
, _gmtime32_s
, _gmtime64_s
localtime_s
, _localtime32_s
, _localtime64_s
mktime
, _mktime32
, _mktime64
time
, _time32
, _time64
_tzset