_strdate_s
, _wstrdate_s
Geçerli sistem tarihini arabelleğe kopyalayın. Bu işlevler, CRT'deki _strdate
_wstrdate
Güvenlik özellikleri bölümünde açıklandığı gibi güvenlik geliştirmeleri içeren sürümleridir.
Sözdizimi
errno_t _strdate_s(
char *buffer,
size_t size
);
errno_t _wstrdate_s(
wchar_t *buffer,
size_t size
);
template <size_t size>
errno_t _strdate_s(
char (&buffer)[size]
); // C++ only
template <size_t size>
errno_t _wstrdate_s(
wchar_t (&buffer)[size]
); // C++ only
Parametreler
buffer
Biçimlendirilmiş tarih dizesini yerleştirmek için arabelleğe işaretçi.
size
Arabelleğin karakter birimleri cinsinden boyutu.
Dönüş değeri
Başarılı olursa sıfı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
. .
Hata koşulları
buffer |
size |
İ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 <size < 9 |
EINVAL |
Boş dize |
Değil NULL (geçerli arabelleğe işaret ediyor) |
size >= 9 |
0 | Açıklamalarda belirtilen şekilde biçimlendirilmiş geçerli tarih |
Güvenlik sorunları
için buffer
geçersiz, NULL olmayan bir değer geçirirseniz, parametresi dokuzdan büyükse erişim ihlaline size
neden olur.
Gerçek boyutundan buffer
büyük bir değer size
geçirerek arabellek taşmasıyla sonuçlanması.
Açıklamalar
Bu işlevler ve'in _strdate
_wstrdate
daha güvenli sürümlerini sağlar. İşlev, _strdate_s
geçerli sistem tarihini tarafından buffer
işaret edilen arabelleğe kopyalar. biçimlendirilir mm/dd/yy
, burada mm
iki basamaklı ay, dd
iki basamaklı gün ve yy
yılın son iki basamağıdır. Örneğin, dize 12/05/99
5 Aralık 1999'ı temsil eder. Arabellek en az dokuz karakter uzunluğunda olmalıdır.
_wstrdate_s
, öğesinin _strdate_s
geniş karakterli bir sürümüdür; bağımsız değişkeni ve dönüş değeri _wstrdate_s
geniş karakterli dizelerdir. Bu işlevler aynı şekilde davranır.
İşaretçi olduğunda buffer
NULL
veya size
dokuz karakterden az olduğunda geçersiz parametre işleyicisi çağrılır. Parametre doğrulama bölümünde açıklanmıştır. Yürütmenin devam etmesi için izin verilirse, bu işlevler -1 döndürür. Arabelleğin NULL
0'dan EINVAL
küçük veya 0'a eşit olup olmadığını size
olarak ayarlarerrno
. Veya 9'dan küçükse size
olarak ayarlanır errno
ERANGE
.
C++ dilinde bu işlevlerin kullanımı şablon aşırı yüklemeleriyle basitleştirilir. Aşırı yüklemeler arabellek uzunluğunu otomatik olarak çıkararak bağımsız size
değişken belirtme gereksinimini ortadan kaldırır. Ayrıca, güvenli olmayan işlevleri otomatik olarak daha yeni ve daha güvenli karşıtlarıyla değiştirebilirler. 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 |
---|---|---|---|
_tstrdate_s |
_strdate_s |
_strdate_s |
_wstrdate_s |
Gereksinimler
Yordam | Gerekli başlık |
---|---|
_strdate |
<time.h> |
_wstrdate |
<time.h> veya <wchar.h> |
_strdate_s |
<time.h> |
Örnek
örneğine time
bakın.
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