Udostępnij za pośrednictwem


_strdate_s, _wstrdate_s

Kopiuj bieżącą datę systemową do bufora.Są to wersje _strdate, _wstrdate z rozszerzeń zabezpieczeń opisane w Funkcje zabezpieczeń w CRT.

errno_t _strdate_s(
   char *buffer,
   size_t numberOfElements
);
errno_t _wstrdate_s(
   wchar_t *buffer,
   size_t numberOfElements
);
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

Parametry

  • [out]buffer
    Wskaźnik do buforu, który będzie wypełniona w ciągu daty sformatowany.

  • [w]numberOfElements
    Rozmiar buforu.

Wartość zwracana

Zero, jeśli kończy się pomyślnie.Wartość zwracana jest kod błędu, jeśli wystąpi awaria.Kody błędów są zdefiniowane w ERRNO.H; Zobacz tabelę poniżej dokładne błędów wygenerowanych przez tę funkcję.Aby uzyskać więcej informacji dotyczących kodów błędów, zobacz errno.

Warunki błędów

buffer

numberOfElements

Zwrot

Zawartośćbuffer

NULL

(wszystkie)

EINVAL

Nie zmodyfikowano

Nie NULL (wskazując ważnego bufora)

0

EINVAL

Nie zmodyfikowano

Nie NULL (wskazując ważnego bufora)

0 < numberOfElements< 9

EINVAL

Pusty ciąg znaków

Nie NULL (wskazując ważnego bufora)

numberOfElements> = 9

0

Bieżącą datę sformatowaną, jak określono w uwagi

Problemy dotyczące zabezpieczeń

Przekazując nieprawidłową non NULL wartość dla buforu spowoduje naruszenie dostępu, jeśli numberOfElements parametr jest większa niż 9.

Przekazanie wartości wielkości jest większa niż rzeczywisty rozmiar buffer spowoduje przekroczenie buforu.

Uwagi

Funkcje te zapewniają bezpieczniejsze wersje _strdate i _wstrdate._strdate_s Funkcja kopiuje bieżącą datę systemową do bufora wskazywanego przez buffer, sformatowanym mm/dd/yy, gdzie mm jest dwie cyfry, reprezentującą miesiąc, dd jest dwie cyfry, reprezentującą dzień, i yy się dwie ostatnie cyfry roku.Na przykład ciąg 12/05/99 reprezentuje 5 grudnia 1999 r.Bufor musi być co najmniej 9 znaków.

_wstrdate_sjest to wersja szerokich znaków _strdate_s; wartość argumentów i _wstrdate_s są ciągami szerokich znaków.Te funkcje działają identycznie inaczej.

Jeśli buffer jest NULL wskaźnik, lub jeśli numberOfElements jest mniejsza niż 9 znaków, wywoływana jest funkcja obsługi nieprawidłowy parametr, jak opisano w Sprawdzanie poprawności parametru.Jeśli wykonanie może kontynuować, funkcje te zwracają wartość -1 i errno do EINVAL Jeśli bufor jest NULL lub jeśli numberOfElements jest mniejsza lub równa 0 lub zestaw errno do ERANGE Jeśli numberOfElements jest mniejsza niż 9.

W języku C++ korzystając z tych funkcji jest uproszczona poprzez overloads szablonu; overloads można automatycznie rozpoznać długość buforu (eliminując konieczność należy określić argument rozmiar) i automatycznie można zastąpić starszych, które nie są bezpieczne funkcje z ich odpowiednikami nowsze, bezpieczne.Aby uzyskać więcej informacji, zobacz Secure, szablon Overloads.

Tekst rodzajowy rutynowych mapowania:

TCHAR.Rutynowe H

_UNICODE & Nie zdefiniowano _MBCS

_MBCS, definicja

_UNICODE, definicja

_tstrdate_s

_strdate_s

_strdate_s

_wstrdate_s

Wymagania

Rozpoczęto wykonywanie procedury

Wymaganego nagłówka

_strdate

<time.h>

_wstrdate

<time.h> lub <wchar.h>

_strdate_s

<time.h>

Przykład

Zobacz przykład dla czasu.

Odpowiednik w programie .NET Framework

System::DateTime::Parse

Zobacz też

Informacje

Zarządzanie czasem

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