Freigeben über


_strdate_s, _wstrdate_s

Kopieren des aktuellen Systemdatums in einen Puffer. Diese Funktionen sind Versionen von _strdate, _wstrdate mit Sicherheitsverbesserungen wie unter Sicherheitsfunktionen in der CRT beschrieben.

Syntax

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

Parameter

buffer
Ein Zeiger auf einen Puffer, um die formatierte Datumszeichenfolge einzufügen.

size
Größe des Puffers in Zeicheneinheiten.

Rückgabewert

Null, wenn erfolgreich. Der Rückgabewert ist ein Fehlercode, falls ein Fehler auftritt. Fehlercodes sind in ERRNO.H definiert. Die genauen Fehler, die von der Funktion generiert werden, finden Sie in der folgenden Tabelle. Weitere Informationen zu Fehlercodes finden Sie unter errno.

Fehlerbedingungen

buffer size Return Inhalt von buffer
NULL (alle) EINVAL Not modified (Nicht geändert)
Nicht NULL (zeigt auf gültigen Puffer) 0 EINVAL Not modified (Nicht geändert)
Nicht NULL (zeigt auf gültigen Puffer) 0 <size< 9 EINVAL Leere Zeichenfolge
Nicht NULL (zeigt auf gültigen Puffer) size>= 9 0 Aktuelles Datum, wie es in den Hinweisen angegeben wurde

Sicherheitsprobleme

Wenn Sie einen ungültigen, nicht NULL-Wert bufferübergeben, führt dies zu einer Zugriffsverletzung, wenn der size Parameter größer als neun ist.

Übergeben eines Werts für size größer als die tatsächliche Größe der buffer Ergebnisse in einem Pufferüberlauf.

Hinweise

Diese Funktionen bieten sicherere Versionen von _strdate und _wstrdate. Die _strdate_s Funktion kopiert das aktuelle Systemdatum in den Puffer buffer, auf den verwiesen wird. Es ist formatiert mm/dd/yy, wobei mm es sich um den zweistelligen Monat handelt, dd um den zweistelligen Tag und yy die letzten beiden Ziffern des Jahres. Beispiel: Die Zeichenfolge 12/05/99 stellt das Datum 5. Dezember 1999 dar. Der Puffer muss mindestens neun Zeichen lang sein.

_wstrdate_s ist eine Breitzeichenversion von _strdate_s. Das Argument und der Rückgabewert von _wstrdate_s sind Zeichenfolgen mit Breitzeichen. Anderenfalls verhalten sich diese Funktionen identisch.

Wenn buffer es sich um einen NULL Zeiger oder size weniger als neun Zeichen handelt, wird der ungültige Parameterhandler aufgerufen. Sie wird in der Parameterüberprüfung beschrieben. Wenn die Ausführung fortgesetzt werden darf, geben diese Funktionen -1 zurück. Sie legen fest EINVAL errno, ob der Puffer kleiner oder gleich 0 ist NULL size. Oder sie legen fest errno ERANGE , ob size sie kleiner als 9 sind.

In C++ wird die Verwendung dieser Funktionen durch Vorlagenüberladungen vereinfacht. Die Überladungen können die Pufferlänge automatisch ableiten, wodurch die Notwendigkeit zum Angeben eines size Arguments ausgeschlossen wird. Und sie können nicht sichere Funktionen automatisch durch ihre neueren, sichereren Entsprechungen ersetzen. Weitere Informationen finden Sie unter Secure Template Overloads.

Die Debugbibliotheksversionen dieser Funktionen füllen zuerst den Puffer mit 0xFE. Verwenden Sie _CrtSetDebugFillThresholdzum Deaktivieren dieses Verhaltens .

Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Wie Sie dieses Verhalten ändern, erfahren Sie unter Globaler Status in der CRT.

Generische Textroutinezuordnung:

TCHAR.H-Routine _UNICODE und _MBCS nicht definiert _MBCS definiert _UNICODE definiert
_tstrdate_s _strdate_s _strdate_s _wstrdate_s

Anforderungen

Routine Erforderlicher Header
_strdate <time.h>
_wstrdate <time.h> oder <wchar.h>
_strdate_s <time.h>

Beispiel

Ein Beispiel hierfür finden Sie unter time.

Siehe auch

Zeitverwaltung
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