_strdate_s, _wstrdate_s

Copia la data di sistema corrente in un buffer. Queste funzioni sono versioni di , _wstrdatecon 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 buffercui 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 EINVALerrno se il buffer è NULL o se size è minore o uguale a 0. In alternativa, impostano su errnoERANGE 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