_strtime_s
, _wstrtime_s
Geçerli saati arabelleğe kopyalayın. Bu işlevler, CRT'deki _strtime
_wstrtime
Güvenlik özellikleri bölümünde açıklandığı gibi güvenlik geliştirmeleri içeren sürümleridir.
Sözdizimi
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
buffer
Zamanın yazılacağı en az 10 bayt uzunluğunda bir arabellek.
numberOfElements
Arabelleğin boyutu.
Dönüş değeri
Başarılı olursa sıfır.
Hata koşulu oluşursa, Parametre doğrulama bölümünde açıklandığı gibi geçersiz parametre işleyicisi çağrılır. Bir hata varsa dönüş değeri bir hata kodudur. Hata kodları ERRNO içinde 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 errno
. sabitler.
Hata koşulları
buffer |
numberOfElements |
İade | İçeriği buffer |
---|---|---|---|
NULL |
(herhangi biri) | EINVAL |
Değiştirilmedi |
Değil NULL (geçerli arabelleğe işaret ediyor) |
0 | EINVAL |
Değiştirilmedi |
Değil NULL (geçerli arabelleğe işaret ediyor) |
0 < boyut < 9 | EINVAL |
Boş dize |
Değil NULL (geçerli arabelleğe işaret ediyor) |
Boyut > 9 | 0 | Açıklamalarda belirtilen şekilde biçimlendirilmiş geçerli saat |
Güvenlik sorunları
Arabellek için geçersiz bir değer geçirildiğindeNULL
parametre 9'dan büyükse numberOfElements
erişim ihlaline neden olur.
Bunun için numberOfElements
gerçek arabellek boyutundan büyük bir değer geçirilmesi arabellek taşmasıyla sonuçlanır.
Açıklamalar
Bu işlevler ve'in _strtime
_wstrtime
daha güvenli sürümlerini sağlar. İşlev, _strtime_s
geçerli yerel saati ile buffer
işaret edilen arabelleğe kopyalar. Saat hh:mm:ss olarak biçimlendirilir; burada hh
24 saatlik gösterimde saati temsil eden iki basamak, mm
saati geçen dakikaları temsil eden iki basamak ve ss
saniyeleri temsil eden iki basamaktır. Örneğin, 18:23:44 dizesi saat 18:00'de 23 dakika 44 saniyeyi temsil eder. Arabellek en az 9 bayt uzunluğunda olmalıdır; gerçek boyut ikinci parametre tarafından belirtilir.
_wstrtime_s
, öğesinin _strtime_s
geniş karakterli bir sürümüdür; bağımsız değişkeni ve dönüş değeri _wstrtime_s
geniş karakterli dizelerdir. Bu işlevler aynı şekilde davranır.
C++'ta bu işlevlerin kullanılması şablon aşırı yüklemeleriyle basitleştirilir; aşırı yüklemeler arabellek uzunluğunu otomatik olarak çıkarabilir (boyut bağımsız değişkeni belirtme gereksinimini ortadan kaldırır) ve eski, güvenli olmayan işlevleri yeni ve güvenli karşılıklarıyla otomatik olarak değiştirebilir. Daha fazla bilgi için bkz . Güvenli şablon aşırı yüklemeleri.
Bu işlevlerin hata ayıklama kitaplığı sürümleri önce arabelleği 0xFE ile doldurur. Bu davranışı devre dışı bırakmak için kullanın _CrtSetDebugFillThreshold
.
Varsayılan olarak, bu işlevin genel durumunun kapsamı uygulama olarak belirlenmiştir. Bu davranışı değiştirmek için bkz. CRT'de Genel durum.
Genel metin yordamı eşlemesi
TCHAR.H yordamı | _UNICODE ve _MBCS tanımlanmadı |
_MBCS tanımlanan |
_UNICODE tanımlanan |
---|---|---|---|
_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> |
Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.
Ö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 );
}
OS time: 14:37:49
OS date: 04/25/03
Ayrıca bkz.
Zaman yönetimi
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