Condividi tramite


_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

System::DateTime::Parse

Vedere anche

Riferimenti

Gestione del tempo

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