_strtime_s, _wstrtime_s
Geçerli saati bir arabellek kopyalayın.Bunlar sürümleridir _strtime, _wstrtime açıklandığı gibi güvenlik geliştirmeleri ile crt güvenlik özellikleri.
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
Parametreler
[Çıkış]buffer
Zaman yazılacağı bir arabellek, en az 10 bayt uzunluğunda.[in]numberOfElements
Arabellek boyutu.
Dönüş Değeri
Başarılı olursa sıfır.
Bir hata koşulu ortaya çıkarsa, geçersiz parametre işleyicisi, açıklandığı şekilde çağrılır Parametre doğrulama.Bir hata varsa dönüş değeri hata kodudur.Hata kodları HATANO tanımlanır.H; Bu işlev tarafından oluşturulan tam hatalar için aşağıdaki tabloya bakın.Hata kodları hakkında daha fazla bilgi için bkz: hatano sabitler.
Hata koşulları
buffer |
numberOfElements |
Return |
İçeriğibuffer |
---|---|---|---|
NULL |
(herhangi) |
EINVAL |
Modifiye edilmemiş |
Değil NULL (geçerli arabellek işaret) |
0 |
EINVAL |
Modifiye edilmemiş |
Değil NULL (geçerli arabellek işaret) |
0 < Boyut < 9 |
EINVAL |
Boş dize |
Değil NULL (geçerli arabellek işaret) |
Boyutu > 9 |
0 |
Geçerli saati açıklamalar da belirtildiği gibi biçimlendirilmiş |
Güvenlik sorunları
Arabellek dosyasında bir erişim ihlali değilse sonuç için geçersiz bir boş olmayan değer geçirerek numberOfElements parametresi, 9 ' büyük.
Bir değeri geçirilmesi numberOfElements gerçek boyut arabellek arabellek taşması oluşmasına çok büyük.
Notlar
Daha güvenli sürümleri bu işlevleri sağlayan _strtime ve _wstrtime._strtime_s İşlevi geçerli yerel saattir göre sıralanmasını arabellek içine kopyalar timestr*.* Saat olarak biçimlendirilmiş hh:mm:ss burada hh saati 24 saatlik gösterimde temsil eden iki basamak olan mm olan iki basamaklı saat geçe temsil eden ve ss olan iki basamaklı saniye temsil eden.Örneğin, dize 18:23:44 6 p.m. geçen 23 dakika ve 44 saniye temsil eder.Arabellek en az 9 bayt uzunluğunda olmalıdır; Gerçek Boyut ikinci parametresi tarafından belirtilir.
_wstrtimegeniş karakter sürümü _strtime; bağımsız değişken ve dönüş değeri _wstrtime geniş karakter dizeleridir.Bu işlevler aynı şekilde aksi davranırlar.
C++'da, bu işlevler tarafından şablon aşırı kolaylaştırılmıştır; aşırı arabellek uzunluğu otomatik olarak gerçekleştirip (size baðýmsýz deðiþkeni belirtmek gereğini ortadan kaldırır) ve bunlar otomatik olarak yeni, güvenli karşılıkları ile eski, güvenli olmayan işlevler değiştirebilirsiniz.Daha fazla bilgi için bkz. Güvenli şablon aşırı yükleme.
Genel metin yordamı eşleştirmesi aşağıda verilmiştir:
TCHAR.H yordamına girildi |
_UNICODE & _mbcs tanımlı değil |
Tanımlanan _mbcs |
Tanımlanan _UNICODE |
---|---|---|---|
_tstrtime_s |
_strtime_s |
_strtime_s |
_wstrtime_s |
Gereksinimler
Yordamı |
Gerekli başlık |
---|---|
_strtime_s |
<time.h> |
_wstrtime_s |
<time.h> veya <wchar.h> |
Ek uyumluluk bilgileri için bkz: Uyumluluk giriş.
Örnek
// 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 );
}
.NET Framework Eşdeğeri
Ayrıca bkz.
Başvuru
ctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s, _wctime64_s
gmtime_s, _gmtime32_s, _gmtime64_s