asctime_s, _wasctime_s

Konvertieren einer tm Zeit Struktur in eine Zeichenfolge.Diese Funktionen sind Versionen von asctime, _wasctime mit beschrieben, wie unter Security Enhancements in Sicherheitsfeatures im CRT.

errno_t asctime_s( 
   char* buffer,
   size_t numberOfElements,
   const struct tm *_tm 
);
errno_t _wasctime_s( 
   wchar_t* buffer,
   size_t numberOfElements
   const struct tm *_tm 
);
template <size_t size>
errno_t asctime_s( 
   char (&buffer)[size],
   const struct tm *_tm 
); // C++ only
template <size_t size>
errno_t _wasctime_s( 
   wchar_t (&buffer)[size],
   const struct tm *_tm 
); // C++ only

Parameter

  • buffer
    [out] Ein Zeiger auf einen Puffer, der den Zeichenfolgen ergebnisses zu speichern.Diese Funktion nimmt einen Zeiger auf eine gültige Speicheradresse mit einer Größe an, die von numberOfElementsangegeben wird.

  • numberOfElements
    [in] Die Größe des Puffers verwendet, um das Ergebnis zu speichern.

  • _tm
    [in] Datum-/Uhrzeit-Struktur.Diese Funktion nimmt einen Zeiger auf ein gültiges Objekt structtm an.

Rückgabewert

Beliebige wenn der Vorgang erfolgreich war.Wenn ein Fehler auftritt, wird der Ereignishandler aufgerufen, z. B. ungültige Parameter in Parametervalidierungbeschrieben.Wenn die Ausführung ermöglicht wird, um fortzufahren, ist der Rückgabewert ein Fehlercode.Fehlercodes werden in ERRNO.H. definiert.Weitere Informationen finden Sie unter errno-Konstanten.Die eigentlichen Fehlercode, die für jeden Fehlerzustand zurückgegeben werden, werden in der folgenden Tabelle dargestellt.

Fehlerbedingungen

buffer

numberOfElements

tm

Return

Wert in buffer

NULL

Irgendein

Irgendein

EINVAL

Nicht geändert

NichtNULL (Zeigt auf den gültigen Arbeitsspeicher)

0

Irgendein

EINVAL

Nicht geändert

Nicht NULL

0< Größe < 26

Irgendein

EINVAL

Leere Zeichenfolge

Nicht NULL

>= 26

NULL

EINVAL

Leere Zeichenfolge

Nicht NULL

>= 26

Ungültige Zeit Struktur oder Bereichswerten für Komponenten der Zeit

EINVAL

Leere Zeichenfolge

HinweisHinweis

Fehlerbedingungen für wasctime_s sind asctime_s vergleichbar, mit der Ausnahme, dass die Größenbeschränkung in den Wörtern gemessen.

Hinweise

Die asctime-Funktion konvertiert eine Uhrzeit, die als Struktur in eine Zeichenfolge gespeichert wird.Der _tm-Wert wird normalerweise bei einem Aufruf von gmtime oder localtimeerhalten.Beide Funktionen können verwendet werden, um eine tm Struktur ausfüllen, wie in TIME.H. definiert.

timeptr Member

Wert

tm_hour

seit Mitternacht vergangenen Stunden (0-23)

tm_isdst

positiv, wenn die Sommerzeit aktiv ist. 0 = Sommerzeit nicht aktiv ist. negativ, wenn Status der Sommerzeit unbekannt ist.Die C-Laufzeitbibliothek weist die der Vereinigten Staaten Regeln zum Implementieren der Berechnung der Sommerzeit an (DST).

tm_mday

Tag des Monats (1-31)

tm_min

Minuten nach der vollen Stunde (0-59)

tm_mon

Monat (0-11. Januar = 0)

tm_sec

Sekunden nach Minute (0-59)

tm_wday

Tag der Woche (0-6. 0 = Sonntag

tm_yday

Tag des Jahres (0-365. Am 1. Januar = 0)

tm_year

Jahres (laufendes Jahr minus 1900)

Die konvertierte Zeichenfolge wird ebenfalls entsprechend den Einstellungen der lokalen Zeitzone passt.Weitere Informationen finden Sie unter Zeit, _time32, _time64, _ftime, _ftime32, _ftime64und Funktionen localtime_s, _localtime32_s, _localtime64_s Informationen zum Konfigurieren der lokale Zeit und die Funktion _tzset Informationen zum Definieren der Zeitzonen Umgebungen und der globalen Variablen.

Das Ergebnis, das von asctime_s Zeichenfolgen erzeugt wird, enthält genau 26 Zeichen und weist das Formular Wed Jan 02 02:03:55 1980\n\0.Ein 24-Stunden-Format wird verwendet.Alle Felder verfügen über eine konstante Breite.Das NULL-Zeichen das Zeilenumbruchzeichen und nehmen die letzten beiden Positionen der Zeichenfolge ein.Der Wert, der als zweiter Parameter übergeben wird, muss mindestens der Größe.Wenn es kleiner ist, wird ein Fehlercode zurückgegeben, EINVAL.

_wasctime_s ist eine Breitzeichen-Version von asctime_s._wasctime_s und asctime_s verhalten sich ansonsten unterscheiden.

Zuweisung generischer Textroutinen

TCHAR.H-Routine

_UNICODE & _MBCS nicht definiert

_MBCS definieren

_UNICODE definiert

_tasctime_s

asctime_s

asctime_s

_wasctime_s

In C++ unter Verwendung dieser Funktionen wird von Vorlagen Operatoren vereinfacht. Überladungen können die Pufferlänge automatisch ableiten und die Notwendigkeit mehr, ein Größen - Argument angegeben wird.Weitere Informationen finden Sie unter Speichern Sie Vorlagen-Überladungen.

Anforderungen

Routine

Erforderlicher Header

asctime_s

<time.h>

_wasctime_s

<time.h> oder <wchar.h>

Sicherheit

Wenn der Puffer nicht NULL Zeiger befindet und der Mauszeiger sich nicht auf ein gültiges Puffer wird, überschreibt die Funktion den am Speicherort befindet.Dies kann auch eine Zugriffsverletzung verursachen.

Pufferüberlauf kann auftreten, wenn die Größen, Argument übergebene größer als die tatsächliche Größe des Puffers.

Beispiel

Dieses Programm wird die Systemzeit in langen ganzzahligen aclock, übersetzt sie in die Struktur newtime und konvertiert sie anschließend in die Zeichenfolgenform für die Ausgabe mit der asctime_s-Funktion.

// crt_asctime_s.c
#include <time.h>
#include <stdio.h>

struct tm newtime;
__time32_t aclock;

int main( void )
{
   char buffer[32];
   errno_t errNum;
   _time32( &aclock );   // Get time in seconds.
   _localtime32_s( &newtime, &aclock );   // Convert time to struct tm form.

   // Print local time as a string.

   errNum = asctime_s(buffer, 32, &newtime);
   if (errNum)
   {
       printf("Error code: %d", (int)errNum);
       return 1;
   }
   printf( "Current date and time: %s", buffer );
   return 0;
}
  

.NET Framework-Entsprechung

Siehe auch

Referenz

Zeit-Verwaltung

ctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s, _wctime64_s

_ftime, _ftime32, _ftime64

gmtime_s, _gmtime32_s, _gmtime64_s

localtime_s, _localtime32_s, _localtime64_s

Zeit, _time32, _time64

_tzset