_strtime_s, _wstrtime_s

Kopieren der aktuellen Zeit in einen Puffer. Diese Funktionen sind Versionen von _strtime, _wstrtime mit Sicherheitsverbesserungen, wie in sicherheitsfeatures im CRT beschrieben.

Syntax

errno_t _strtime_s(
   char *buffer,
   size_t numberOfElements
);
errno_t _wstrtime_s(
   wchar_t *buffer,
   size_t numberOfElements
);
template <size_t size>
errno_t _strtime_s(
   char (&buffer)[size]
); // C++ only
template <size_t size>
errno_t _wstrtime_s(
   wchar_t (&buffer)[size]
); // C++ only

Parameter

buffer
Ein mindestens 10 Bytes langer Puffer, in den die Zeit geschrieben wird.

numberOfElements
Die Größe des Puffers.

Rückgabewert

Null, wenn erfolgreich.

Wenn eine Fehlerbedingung auftritt, wird der ungültige Parameterhandler aufgerufen, wie in der Parameterüberprüfung beschrieben. Der Rückgabewert ist ein Fehlercode, wenn 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 Konstanten.

Fehlerbedingungen

buffer numberOfElements 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 < Größe < 9 EINVAL Leere Zeichenfolge
Nicht NULL (zeigt auf gültigen Puffer) Größe > 9 0 Aktuelle Zeit, wie sie in den Hinweisen angegeben wurde

Sicherheitsprobleme

Das Übergeben eines ungültigen Nicht-WertsNULL für den Puffer führt zu einer Zugriffsverletzung, wenn der numberOfElements Parameter größer als 9 ist.

Die Übergabe eines Werts für numberOfElements, der größer als die tatsächliche Größe des Puffers ist, führt zu einem Pufferüberlauf.

Hinweise

Diese Funktionen bieten sicherere Versionen von _strtime und _wstrtime. Die _strtime_s Funktion kopiert die aktuelle Ortszeit in den Puffer, auf den verwiesen wird.buffer Die Uhrzeit wird als "hh:mm:ss" formatiert, wobei hh es sich um zwei Ziffern handelt, die die Stunde in 24-Stunden-Notation darstellen, mm zwei Ziffern sind, die die Minuten hinter der Stunde darstellen, und ss es handelt sich um zwei Ziffern, die Sekunden darstellen. Die Zeichenfolge 18:23:44 stellt beispielsweise 23 Minuten und 44 Sekunden nach 18:00 Uhr dar. Der Puffer muss mindestens 9 Byte lang sein; die tatsächliche Größe wird durch den zweiten Parameter angegeben.

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

In C++ wird die Verwendung dieser Funktionen durch Vorlagenüberladungen vereinfacht; die Überladungen können automatisch Rückschlüsse auf die Pufferlänge ziehen (wodurch kein Größenargument mehr angegeben werden muss), und sie können automatisch die älteren, nicht sicheren Funktionen durch ihre neueren, sicheren Entsprechungen ersetzen. Weitere Informationen finden Sie unter "Sichere Vorlagenüberladungen".

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. Informationen zum Ändern dieses Verhaltens finden Sie im Global state in the CRT.

Generische Textroutinenzuordnung

TCHAR.H-Routine _UNICODE und _MBCS nicht definiert _MBCS Definiert _UNICODE Definiert
_tstrtime_s _strtime_s _strtime_s _wstrtime_s

Anforderungen

Routine Erforderlicher Header
_strtime_s <time.h>
_wstrtime_s <time.h> oder <wchar.h>

Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.

Beispiel

// strtime_s.c

#include <time.h>
#include <stdio.h>

int main()
{
    char tmpbuf[9];
    errno_t err;

    // Set time zone from TZ environment variable. If TZ is not set,
    // the operating system is queried to obtain the default value
    // for the variable.
    //
    _tzset();

    // Display operating system-style date and time.
    err = _strtime_s( tmpbuf, 9 );
    if (err)
    {
       printf("_strdate_s failed due to an invalid argument.");
      exit(1);
    }
    printf( "OS time:\t\t\t\t%s\n", tmpbuf );
    err = _strdate_s( tmpbuf, 9 );
    if (err)
    {
       printf("_strdate_s failed due to an invalid argument.");
       exit(1);
    }
    printf( "OS date:\t\t\t\t%s\n", tmpbuf );

}
OS time:            14:37:49
OS date:            04/25/03

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