_strtime_s, _wstrtime_s
Copiare il tempo corrente di un buffer.queste sono versioni di _strtime, _wstrtime con i miglioramenti della sicurezza come descritto in Funzionalità di sicurezza in CRT.
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
[out] buffer
Un buffer, almeno 10 byte di lunghezza, dove il tempo viene scritto.[in] numberOfElements
Dimensione del buffer.
Valore restituito
Zero se ha esito positivo.
Se una condizione di errore caso, il gestore non valido di parametro viene richiamato, come descritto in Convalida dei parametri.Il valore restituito è un codice di errore se c " è un errore.I codici di errore definiti in ERRNO.H; vedere la seguente tabella degli errori esatti generati dalla funzione.Per ulteriori informazioni sui codici di errore, vedere costanti di errno.
condizioni di errore
buffer |
numberOfElements |
Return |
Contenuto di buffer |
---|---|---|---|
NULL |
(nessuno) |
EINVAL |
non modificato |
non NULL (punta al buffer valido) |
0 |
EINVAL |
non modificato |
non NULL (punta al buffer valido) |
0 Dimensioni < 9 di < |
EINVAL |
Stringa vuota. |
non NULL (punta al buffer valido) |
dimensione > 9 |
0 |
L'ora corrente formattato come specificato nei commenti |
problemi di sicurezza
Passando un valore non Null non valido per il buffer comporterà una violazione di accesso se numberOfElements il parametro è maggiore di 9.
passare un valore per numberOfElements ciò è maggiore dell'effettiva dimensione del buffer comporterà il sovraccarico del buffer.
Note
Queste funzioni forniscono versioni sicure di _strtime e _wstrtime._strtime_s la funzione copia l'ora locale corrente nel buffer puntato in near timestr*.* Il tempo viene formattato come hh:mm:ss dove hh sono due cifre che rappresentano l'ora in notazione di 24 ore, mm sono due cifre che rappresentano i minuti dopo l'ora e ss sono due cifre che rappresentano i secondi.Ad esempio, la stringa 18:23:44 rappresenta 23 minuti e 44 secondi dopo le 6 del pomeriggioil buffer deve essere almeno di 9 byte di lunghezza; l'effettiva dimensione è specificata dal secondo parametro.
_wstrtime è una versione a caratteri estesi di _strtime; l'argomento e il valore restituito di _wstrtime sono le stringhe di caratteri estesi.Queste funzioni si comportano in modo identico in caso contrario.
In C++, utilizzando queste funzioni è semplificato dagli overload del modello; gli overload possono dedurre la lunghezza del buffer automaticamente (che elimina la necessità di specificare un argomento di dimensione) e possono sostituire automaticamente le funzioni precedenti e non sicure con le più recenti, controparti sicure.Per ulteriori informazioni, vedere Assicurarsi che gli overload del modello.
Mapping di routine a testo generico:
routine di TCHAR.H |
_UNICODE & _MBCS non definiti |
_MBCS definito |
_UNICODE definito |
---|---|---|---|
_tstrtime_s |
_strtime_s |
_strtime_s |
_wstrtime_s |
Requisiti
routine |
Intestazione di associazione |
---|---|
_strtime_s |
<time.h> |
_wstrtime_s |
<time.h> o <wchar.h> |
per informazioni di compatibilità aggiuntive, vedere compatibilità nell'introduzione.
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 );
}
Equivalente .NET Framework
Vedere anche
Riferimenti
ctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s, _wctime64_s
gmtime_s, _gmtime32_s, _gmtime64_s