_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 _CrtSetDebugFillThreshold
zum 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