_strtime_s
, _wstrtime_s
Salin waktu saat ini ke buffer. Fungsi-fungsi ini adalah versi _strtime
, _wstrtime
dengan peningkatan keamanan seperti yang dijelaskan dalam Fitur keamanan di CRT.
Sintaks
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
Parameter
buffer
Buffer, setidaknya 10 byte panjang, di mana waktu akan ditulis.
numberOfElements
Ukuran buffer.
Nilai hasil
Nol jika berhasil.
Jika terjadi kondisi kesalahan, handler parameter yang tidak valid dipanggil, seperti yang dijelaskan dalam Validasi parameter. Nilai yang dikembalikan adalah kode kesalahan jika ada kegagalan. Kode kesalahan didefinisikan dalam ERRNO. H; lihat tabel berikut untuk kesalahan tepat yang dihasilkan oleh fungsi ini. Untuk informasi selengkapnya tentang kode kesalahan, lihat errno
konstanta.
Kondisi kesalahan
buffer |
numberOfElements |
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 < ukuran < 9 | EINVAL |
String kosong |
Tidak NULL (menunjuk ke buffer yang valid) |
Ukuran > 9 | 0 | Waktu saat ini diformat seperti yang ditentukan dalam keterangan |
Masalah keamanan
Meneruskan nilai non-yangNULL
tidak valid untuk buffer akan mengakibatkan pelanggaran akses jika numberOfElements
parameter lebih besar dari 9.
Meneruskan nilai untuk numberOfElements
itu lebih besar dari ukuran aktual buffer akan mengakibatkan buffer diserbu.
Keterangan
Fungsi-fungsi ini menyediakan versi _strtime
dan _wstrtime
. Fungsi _strtime_s
menyalin waktu lokal saat ini ke dalam buffer yang ditujukkan oleh buffer
. Waktu diformat sebagai hh:mm:ss di mana hh
adalah dua digit yang mewakili jam dalam notasi 24 jam, mm
adalah dua digit yang mewakili menit melewati jam, dan ss
merupakan dua digit yang mewakili detik. Misalnya, string 18:23:44 mewakili 23 menit dan 44 detik setelah 6 P.M. Buffer harus panjangnya minimal 9 byte; ukuran aktual ditentukan oleh parameter kedua.
_wstrtime_s
adalah versi karakter yang luas dari _strtime_s
; argumen dan nilai yang dikembalikan adalah _wstrtime_s
string karakter lebar. Fungsi-fungsi ini berulah secara identik jika tidak.
Di C++, menggunakan fungsi-fungsi ini disederhanakan oleh kelebihan beban templat; kelebihan beban dapat menyimpulkan panjang buffer secara otomatis (menghilangkan kebutuhan untuk menentukan argumen ukuran) dan mereka dapat secara otomatis mengganti fungsi lama yang tidak aman dengan rekan-rekan yang lebih baru dan 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 |
---|---|---|---|
_tstrtime_s |
_strtime_s |
_strtime_s |
_wstrtime_s |
Persyaratan
Rutin | Header yang diperlukan |
---|---|
_strtime_s |
<time.h> |
_wstrtime_s |
<time.h> atau <wchar.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Contoh
// 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
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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk