Delen via


_strdate_s, _wstrdate_s

Kopieer de huidige systeemdatum naar een buffer. Deze functies zijn versies van _strdate, _wstrdate met beveiligingsverbeteringen zoals beschreven in beveiligingsfuncties in de CRT.

Syntaxis

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

Parameterwaarden

buffer
Een aanwijzer naar een buffer om de opgemaakte datumtekenreeks te plaatsen.

size
Grootte van de buffer in tekeneenheden.

Retourwaarde

Nul als het lukt. De retourwaarde is een foutcode als er een fout optreedt. Foutcodes worden gedefinieerd in ERRNO. H; zie de onderstaande tabel voor de exacte fouten die door deze functie zijn gegenereerd. Zie voor meer informatie over foutcodes errno.

Foutvoorwaarden

buffer size Return Inhoud van buffer
NULL (any) EINVAL Niet gewijzigd
Niet NULL (wijzen naar een geldige buffer) 0 EINVAL Niet gewijzigd
Niet NULL (wijzen naar een geldige buffer) 0 <size< 9 EINVAL Lege tekenreeks
Niet NULL (wijzen naar een geldige buffer) size >= 9 0 Huidige datum opgemaakt zoals opgegeven in de opmerkingen

Beveiligingsproblemen

Als u een ongeldige, niet-NULL-waarde opgeeft buffer, resulteert dit in een toegangsfout als de size parameter groter is dan negen.

Een waarde doorgeven voor size meer dan de werkelijke grootte van buffer resultaten in een bufferoverschrijding.

Opmerkingen

Deze functies bieden veiligere versies van _strdate en _wstrdate. De _strdate_s functie kopieert de huidige systeemdatum naar de buffer waarnaar wordt verwezen buffer. Het is opgemaakt mm/dd/yy, waarbij mm de maand van twee cijfers is, dd de dag van twee cijfers is en yy de laatste twee cijfers van het jaar zijn. De tekenreeks 12/05/99 vertegenwoordigt bijvoorbeeld 5 december 1999. De buffer moet ten minste negen tekens lang zijn.

_wstrdate_s is een breedtekenversie van _strdate_s; het argument en de retourwaarde zijn _wstrdate_s tekenreeksen met brede tekens. Deze functies gedragen zich op dezelfde manier als anders.

Wanneer buffer is een NULL aanwijzer of size minder dan negen tekens, wordt de ongeldige parameterhandler aangeroepen. Deze wordt beschreven in parametervalidatie. Als uitvoering mag worden voortgezet, retourneren deze functies -1. Ze zijn ingesteld errno op EINVAL of de buffer kleiner is sizeNULL dan of gelijk is aan 0. Of ze zijn ingesteld errno op ERANGE als size ze kleiner zijn dan 9.

In C++wordt het gebruik van deze functies vereenvoudigd door overbelasting van sjablonen. De overbelastingen kunnen de bufferlengte automatisch afleiden, waardoor het niet meer nodig is om een size argument op te geven. En ze kunnen automatisch niet-beveiligde functies vervangen door hun nieuwere, veiligere tegenhangers. Zie Overbelasting van beveiligde sjablonen voor meer informatie.

De foutopsporingsbibliotheekversies van deze functies vullen eerst de buffer met 0xFE. Als u dit gedrag wilt uitschakelen, gebruikt u _CrtSetDebugFillThreshold.

De globale status van deze functie is standaard gericht op de toepassing. Als u dit gedrag wilt wijzigen, raadpleegt u de globale status in de CRT.

Algemene-tekstroutinetoewijzing

TCHAR. H-routine _UNICODE en _MBCS niet gedefinieerd _MBCS Gedefinieerd _UNICODE Gedefinieerd
_tstrdate_s _strdate_s _strdate_s _wstrdate_s

Requirements

Routine Vereiste header
_strdate <time.h>
_wstrdate <time.h> of <wchar.h>
_strdate_s <time.h>

Example

Zie het voorbeeld voor time.

Zie ook

Tijdbeheer
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