_strtime_s, _wstrtime_s
Kopiuj bieżącą godzinę do buforu.Są to wersje _strtime, _wstrtime z ulepszeń zabezpieczeń, zgodnie z opisem 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
[poza] buffer
Bufor, co najmniej 10 bajtów, której czas będą zapisywane.[w] numberOfElements
Rozmiar buforu.
Wartość zwracana
0, 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 w przypadku awarii.Kody błędów są zdefiniowane w numer błędu.H; zawiera poniższa tabela dokładne błędów wygenerowanych przez tę funkcję.Aby uzyskać więcej informacji na temat kodów błędów, zobacz numer błędu stałe.
Warunki błędów
buffer |
numberOfElements |
Zwrot |
Zawartośćbuffer |
---|---|---|---|
NULL |
(wszystkie) |
EINVAL |
Nie zmodyfikowano |
Nie NULL (skierowana do ważnego bufora) |
0 |
EINVAL |
Nie zmodyfikowano |
Nie NULL (skierowana do ważnego bufora) |
0 < rozmiar < 9 |
EINVAL |
Pusty ciąg znaków |
Nie NULL (skierowana do ważnego bufora) |
Rozmiar > 9 |
0 |
Bieżący czas w formacie określonym w uwagach |
Problemy dotyczące zabezpieczeń
Przekazując nieprawidłową wartość inną niż NULL dla buforu spowoduje powoduje naruszenie zasad dostępu, jeśli numberOfElements parametr jest większa niż 9.
Przekazując wartość numberOfElements to 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*.* Godzina jest formatowana jako hh:mm:ss gdzie hh to dwie cyfry, reprezentującą godzinę w zapisie 24-godzinnym, mm to dwie cyfry, reprezentujących minut po pełnej godzinie, i ss to dwie cyfry, reprezentującą sekundy.Na przykład ciąg 18:23:44 reprezentuje 23 minuty i 44 sekundy ostatnich 6 P.M. Bufor musi być co najmniej 9 bajtów; Rzeczywisty rozmiar jest określony przez drugiego parametru.
_wstrtimejest to wersja szeroko charakter _strtime; wartość argumentów i _wstrtime są ciągi znaków wide.W innych przypadkach funkcje te zachowują się identycznie.
W języku programowania C++ korzystanie z tych funkcji jest uproszczone przez przeciążania szablonu; przeciążania mogą automatycznie wywnioskować długość buforu (tak, aby nie było konieczne określenie argumentu rozmiaru), ponadto te funkcje mogą automatycznie zastąpić starsze, niezabezpieczone funkcje nowszymi, bardziej bezpiecznymi odpowiednikami.Aby uzyskać więcej informacji, zobacz Przeciążenia bezpiecznych szablonów.
Tekst rodzajowy rutynowych mapowania:
Procedura Tchar.h |
_UNICODE & _MBCS nie zdefiniowano |
_MBCS zdefiniowano |
_UNICODE zdefiniowany |
---|---|---|---|
_tstrtime_s |
_strtime_s |
_strtime_s |
_wstrtime_s |
Wymagania
Procedura |
Wymagany nagłówek |
---|---|
_strtime_s |
<czas.h> |
_wstrtime_s |
<Time.h> lub <wchar.h> |
Dodatkowe informacje o zgodności – zobacz: Zgodność 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