_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