Aracılığıyla paylaş


_strdate_s, _wstrdate_s

Geçerli sistem tarihini arabelleğe kopyalayın. Bu işlevler, CRT'deki _strdate_wstrdateGü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 buffergeç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_wstrdatedaha güvenli sürümlerini sağlar. İşlev, _strdate_s geçerli sistem tarihini tarafından bufferiş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_sgeniş 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 bufferNULL 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 errnoERANGE.

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 timebakı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