Share via


_strdate_s, _wstrdate_s

Salin tanggal sistem saat ini ke buffer. Fungsi-fungsi ini adalah versi _strdate, _wstrdate dengan peningkatan keamanan seperti yang dijelaskan dalam Fitur keamanan di CRT.

Sintaks

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

Parameter

buffer
Penunjuk ke buffer untuk meletakkan string tanggal yang diformat.

size
Ukuran buffer dalam unit karakter.

Nilai hasil

Nol jika berhasil. Nilai yang dikembalikan adalah kode kesalahan jika ada kegagalan. Kode kesalahan didefinisikan dalam ERRNO. H; lihat tabel di bawah ini untuk kesalahan tepat yang dihasilkan oleh fungsi ini. Untuk informasi selengkapnya tentang kode kesalahan, lihat errno.

Kondisi kesalahan

buffer size Tampilkan Isi dari buffer
NULL (apa saja) EINVAL Tidak dimodifikasi
Tidak NULL (menunjuk ke buffer yang valid) 0 EINVAL Tidak dimodifikasi
Tidak NULL (menunjuk ke buffer yang valid) 0 <size< 9 EINVAL String kosong
Tidak NULL (menunjuk ke buffer yang valid) size>= 9 0 Tanggal saat ini diformat seperti yang ditentukan dalam keterangan

Masalah keamanan

Jika Anda meneruskan nilai non-NULL yang tidak valid untuk buffer, itu menghasilkan pelanggaran akses jika size parameter lebih besar dari sembilan.

Meneruskan nilai untuk size lebih besar dari buffer ukuran aktual hasil dalam buffer overrun.

Keterangan

Fungsi-fungsi ini menyediakan versi _strdate dan _wstrdate. Fungsi _strdate_s menyalin tanggal sistem saat ini ke buffer yang ditujukkan oleh buffer. Ini diformat mm/dd/yy, di mana mm adalah bulan dua digit, dd adalah hari dua digit, dan yy merupakan dua digit terakhir dalam setahun. Misalnya, string 12/05/99 mewakili 5 Desember 1999. Panjang buffer harus minimal sembilan karakter.

_wstrdate_s adalah versi karakter yang luas dari _strdate_s; argumen dan nilai yang dikembalikan adalah _wstrdate_s string karakter lebar. Fungsi-fungsi ini berulah secara identik jika tidak.

Ketika buffer adalah NULL penunjuk, atau size kurang dari sembilan karakter, handler parameter yang tidak valid dipanggil. Ini dijelaskan dalam Validasi parameter. Jika eksekusi diizinkan untuk melanjutkan, fungsi-fungsi ini mengembalikan -1. Mereka diatur errno ke EINVAL jika buffer adalah NULL atau jika size kurang dari atau sama dengan 0. Atau, mereka mengatur errno ke ERANGE jika size kurang dari 9.

Di C++, penggunaan fungsi-fungsi ini disederhanakan oleh kelebihan beban templat. Kelebihan beban dapat menyimpulkan panjang buffer secara otomatis, yang menghilangkan kebutuhan untuk menentukan size argumen. Dan, mereka dapat secara otomatis mengganti fungsi yang tidak aman dengan rekan-rekan yang lebih baru dan lebih aman. Untuk informasi selengkapnya, lihat Mengamankan kelebihan beban templat.

Versi pustaka debug dari fungsi-fungsi ini terlebih dahulu mengisi buffer dengan 0xFE. Untuk menonaktifkan perilaku ini, gunakan _CrtSetDebugFillThreshold.

Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.

Pemetaan rutin teks generik:

TCHAR. Rutinitas H _UNICODE dan _MBCS tidak ditentukan _MBCS Didefinisikan _UNICODE Didefinisikan
_tstrdate_s _strdate_s _strdate_s _wstrdate_s

Persyaratan

Rutin Header yang diperlukan
_strdate <time.h>
_wstrdate <time.h> atau <wchar.h>
_strdate_s <time.h>

Contoh

Lihat contoh untuk time.

Baca juga

Manajemen waktu
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