Udostępnij za pośrednictwem


_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

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