_strdate_s, _wstrdate_s
Copiare la data di sistema corrente in un buffer. Queste sono versioni di _strdate, _wstrdate con miglioramenti di sicurezza come descritto in Funzionalità di sicurezza in CRT.
errno_t _strdate_s(
char *buffer,
size_t numberOfElements
);
errno_t _wstrdate_s(
wchar_t *buffer,
size_t numberOfElements
);
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
[out] buffer
Un puntatore a un buffer che verrà riempito con la stringa della data formattata.[in] numberOfElements
Dimensione del buffer.
Valore restituito
Zero se ha esito positivo. Il valore restituito è un codice di errore in presenza di un fallimento. I codici di errore vengono definiti in ERRNO.H; vedere la tabella riportata di seguito per gli esatti errori generati da questa funzione. Per ulteriori informazioni sui codici di errore, vedere errno.
Condizioni di errore
buffer |
numberOfElements |
Restituzione |
Contenuti di buffer. |
---|---|---|---|
NULL |
(tutti) |
EINVAL |
Non modificato |
Non NULL (che punta a un buffer valido) |
0 |
EINVAL |
Non modificato |
Non NULL (che punta a un buffer valido) |
0 < numberOfElements < 9 |
EINVAL |
Stringa vuota. |
Non NULL (che punta a un buffer valido) |
numberOfElements >= 9 |
0 |
Data corrente formattata come specificato nei commenti |
Problemi relativi alla sicurezza
Passando un valore non valido NULL al buffer si avrà una violazione di accesso se il parametro numberOfElements è maggiore di 9.
Passare i valori di dimensione maggiore della dimensione effettiva di buffer provocherà un sovraccarico del buffer.
Note
Queste funzioni forniscono versioni più sicure di _strdate e di _wstrdate. La funzione _strdate_s copia la data di sistema corrente nel buffer puntato da buffer, nel formato mm/dd/yy, dove mm sono le due cifre che rappresentano il mese, dd sono le due cifre che rappresentano il giorno e yy sono le ultime due cifre dell'anno. Ad esempio, la stringa 12/05/99 rappresenta il 5 dicembre 1999. Il buffer deve essere lungo almeno 9 caratteri.
_wstrdate_s è una versione a caratteri estesi di _strdate_s; gli argomenti e i valori restituiti di _wstrdate_s sono stringhe con caratteri estesi. Altrimenti queste funzioni si comportano in modo identico.
Se buffer è un puntatore NULL, o se numberOfElements è minore di 9 caratteri, il gestore di parametro non valido viene richiamato, come descritto in Convalida dei parametri. Se all'esecuzione è consentito continuare, queste funzioni restituiscono -1 e errno viene impostato su EINVAL se il buffer è NULL o se numberOfElements è minore o uguale a 0, o errno viene impostato su ERANGE se numberOfElements è minore di 9.
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 ulteriori informazioni, vedere Overload di modelli sicuri.
Mapping di routine a Testo generico:
Routine TCHAR.H |
_UNICODE & _MBCS non definiti |
_MBCS definito |
_UNICODE definito |
---|---|---|---|
_tstrdate_s |
_strdate_s |
_strdate_s |
_wstrdate_s |
Requisiti
Routine |
Intestazione obbligatoria |
---|---|
_strdate |
<time.h> |
_wstrdate |
<time.h> o <wchar.h> |
_strdate_s |
<time.h> |
Esempio
Vedere l'esempio relativo a time.
Equivalente .NET Framework
Vedere anche
Riferimenti
ctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s, _wctime64_s
gmtime_s, _gmtime32_s, _gmtime64_s