_strdate_s
, _wstrdate_s
Copia la data di sistema corrente in un buffer. Queste funzioni sono versioni di , _wstrdate
con miglioramenti della_strdate
sicurezza, come descritto in Funzionalità di sicurezza in CRT.
Sintassi
errno_t _strdate_s(
char *buffer,
size_t size
);
errno_t _wstrdate_s(
wchar_t *buffer,
size_t size
);
template <size_t size>
errno_t _strdate_s(
char (&buffer)[size]
); // C++ only
template <size_t size>
errno_t _wstrdate_s(
wchar_t (&buffer)[size]
); // C++ only
Parametri
buffer
Puntatore a un buffer per inserire la stringa di data formattata.
size
Dimensioni del buffer in unità di caratteri.
Valore restituito
Zero in caso di esito positivo. 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
.
Condizioni di errore
buffer |
size |
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 <size < 9 |
EINVAL |
Stringa vuota |
Non NULL (che punta a un buffer valido) |
size >= 9 |
0 | Data corrente, formattata come specificato nella sezione Note |
Problemi di sicurezza
Se si passa un valore non valido, non NULL per buffer
, viene restituita una violazione di accesso se il size
parametro è maggiore di nove.
Passando un valore per size
maggiore delle dimensioni effettive dei buffer
risultati in un sovraccarico del buffer.
Osservazioni:
Queste funzioni sono versioni più sicure di _strdate
e _wstrdate
. La _strdate_s
funzione copia la data di sistema corrente nel buffer a buffer
cui punta . È formattato mm/dd/yy
, dove mm
è il mese a due cifre, dd
è il giorno a due cifre ed yy
è l'ultima due cifre dell'anno. Ad esempio, la stringa 12/05/99
rappresenta il 5 dicembre 1999. Il buffer deve avere una lunghezza di almeno nove caratteri.
_wstrdate_s
è una versione a caratteri wide di _strdate_s
. L'argomento e il valore restituito di _wstrdate_s
sono stringhe a caratteri wide. A parte ciò, queste funzioni si comportano in modo identico.
Quando buffer
è un NULL
puntatore o size
è minore di nove caratteri, viene richiamato il gestore di parametri non validi. Viene descritto in Convalida dei parametri. Se l'esecuzione può continuare, queste funzioni restituiscono -1. Vengono impostati su EINVAL
errno
se il buffer è NULL
o se size
è minore o uguale a 0. In alternativa, impostano su errno
ERANGE
se size
è minore di 9.
In C++, l'uso di queste funzioni è semplificato dagli overload dei modelli. Gli overload possono dedurre automaticamente la lunghezza del buffer, eliminando la necessità di specificare un size
argomento. E possono sostituire automaticamente funzioni non sicure con le controparti più recenti e più 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 |
---|---|---|---|
_tstrdate_s |
_strdate_s |
_strdate_s |
_wstrdate_s |
Requisiti
Ciclo | Intestazione obbligatoria |
---|---|
_strdate |
<time.h> |
_wstrdate |
<time.h> o <wchar.h> |
_strdate_s |
<time.h> |
Esempio
Vedere l'esempio per time
.
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