_strtime_s, _wstrtime_s
Kopiuj bieżącą godzinę do bufora.Są to wersje _strtime, _wstrtime z rozszerzeń zabezpieczeń opisane w Funkcje zabezpieczeń w CRT.
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
Parametry
[out]buffer
Bufor, co najmniej 10 bajtów, której czas będą zapisywane.[w]numberOfElements
Rozmiar buforu.
Wartość zwracana
Zero, jeśli kończy się pomyślnie.
Jeśli wystąpi błąd, program obsługi nieprawidłowy parametr jest wywoływany, zgodnie z opisem w Sprawdzanie poprawności parametru.Wartość zwracana jest kod błędu, jeśli wystąpi awaria.Kody błędów są zdefiniowane w ERRNO.H; patrz poniższa tabela zawiera dokładne błędy generowane przez tę funkcję.Aby uzyskać więcej informacji dotyczących kodów błędów, zobacz errno stałe.
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 < rozmiar < 9 |
EINVAL |
Pusty ciąg znaków |
Nie NULL (wskazując ważnego bufora) |
Rozmiar > 9 |
0 |
Bieżącą godzinę sformatowane jako określonego w uwagach |
Problemy dotyczące zabezpieczeń
Przekazując nieprawidłową wartość różną od NULL dla buforu spowoduje naruszenie dostępu, jeśli numberOfElements parametr jest większa niż 9.
Przekazując wartość dla numberOfElements , jest większa niż rzeczywisty rozmiar buforu spowoduje przekroczenie buforu.
Uwagi
Funkcje te zapewniają bezpieczniejsze wersje _strtime i _wstrtime._strtime_s Funkcja kopiuje bieżący czas lokalny do bufora wskazywanego przez timestr*.* Czas jest sformatowane jako hh:mm:ss gdzie hh jest dwie cyfry, reprezentującą godzinę w zapisie 24-godzinnym, mm jest dwóch cyfr reprezentujących minut po godzinie, i ss jest dwóch cyfr reprezentujących sekund.Na przykład ciąg 18:23:44 reprezentuje 23 minut i 44 sekund w przeszłości 6 P.M.Bufor musi być co najmniej 9 bajtów; rzeczywisty rozmiar jest określony przez drugiego parametru.
_wstrtimejest to wersja szerokich znaków _strtime; wartość argumentów i _wstrtime są ciągami szerokich znaków.Te funkcje działają identycznie inaczej.
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 |
---|---|---|---|
_tstrtime_s |
_strtime_s |
_strtime_s |
_wstrtime_s |
Wymagania
Rozpoczęto wykonywanie procedury |
Wymaganego nagłówka |
---|---|
_strtime_s |
<time.h> |
_wstrtime_s |
<time.h> lub <wchar.h> |
Aby uzyskać dodatkowe informacje o zgodności, zobacz zgodności we wprowadzeniu.
Przykład
// 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 );
}
Odpowiednik w programie .NET Framework
Zobacz też
Informacje
ctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s, _wctime64_s
gmtime_s, _gmtime32_s, _gmtime64_s