Aracılığıyla paylaş


ctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s, _wctime64_s

Bir saat değerini dizeye dönüştürün ve yerel saat dilimi ayarları için ayarlayın. Bu işlevler, CRT'deki ctimeGüvenlik özellikleri bölümünde açıklandığı gibi güvenlik geliştirmeleri içeren , _ctime64, _wctime,_wctime64sürümleridir.

Sözdizimi

errno_t ctime_s(
   char* buffer,
   size_t numberOfElements,
   const time_t *sourceTime
);
errno_t _ctime32_s(
   char* buffer,
   size_t numberOfElements,
   const __time32_t *sourceTime
);
errno_t _ctime64_s(
   char* buffer,
   size_t numberOfElements,
   const __time64_t *sourceTime )
;
errno_t _wctime_s(
   wchar_t* buffer,
   size_t numberOfElements,
   const time_t *sourceTime
);
errno_t _wctime32_s(
   wchar_t* buffer,
   size_t numberOfElements,
   const __time32_t *sourceTime
);
errno_t _wctime64_s(
   wchar_t* buffer,
   size_t numberOfElements,
   const __time64_t *sourceTime
);
template <size_t size>
errno_t _ctime32_s(
   char (&buffer)[size],
   const __time32_t *sourceTime
); // C++ only
template <size_t size>
errno_t _ctime64_s(
   char (&buffer)[size],
   const __time64_t *sourceTime
); // C++ only
template <size_t size>
errno_t _wctime32_s(
   wchar_t (&buffer)[size],
   const __time32_t *sourceTime
); // C++ only
template <size_t size>
errno_t _wctime64_s(
   wchar_t (&buffer)[size],
   const __time64_t *sourceTime
); // C++ only

Parametreler

buffer
26 karakteri barındıracak kadar büyük olmalıdır. Karakter dizesi sonucunun işaretçisi veya NULL şu durum:

  • sourceTime , 1 Ocak 1970( UTC) gece yarısından önceki bir tarihi temsil eder.

  • veya _wctime32_s kullanıyorsanız _ctime32_s ve sourceTime 18 Ocak 2038 UTC saat 23:59:59'dan sonraki bir tarihi temsil ediyorsanız.

  • veya _wctime64_s kullanıyorsanız _ctime64_s ve sourceTime 23:59:59, 31 Aralık 3000, UTC'dan sonraki bir tarihi temsil ediyorsanız.

  • veya _wctime_skullanıyorsanız_ctime_s, bu işlevler önceki işlevlere sarmalayıcılardır. Açıklamalar bölümüne bakın.

numberOfElements
Arabelleğin boyutu.

sourceTime
Depolanan süre işaretçisi.

Dönüş değeri

Başarılı olursa sıfır. Geçersiz bir parametreden kaynaklanan bir hata varsa, Parametre doğrulama bölümünde açıklandığı gibi geçersiz parametre işleyicisi çağrılır. Yürütmenin devam etmesi için izin verilirse bir hata kodu döndürülür. Hata kodları ERRNO içinde tanımlanır. H; bu hataların listesi için bkz errno. . Her hata koşulu için gerçek hata kodları aşağıdaki tabloda gösterilmiştir.

Hata koşulları

buffer numberOfElements sourceTime İade içindeki değer buffer
NULL herhangi bir herhangi bir EINVAL Değiştirilmedi
Değil NULL (geçerli belleğe işaret eden) 0 herhangi bir EINVAL Değiştirilmedi
Değil NULL 0< boyut < 26 herhangi bir EINVAL Boş dize
Değil NULL >= 26 NULL EINVAL Boş dize
Değil NULL >= 26 < 0 EINVAL Boş dize

Açıklamalar

işlevi, ctime_s yapı olarak time_t depolanan bir zaman değerini karakter dizesine dönüştürür. Değer sourceTime genellikle gece yarısından (00:00:00), 1 Ocak 1970'ten (UTC) itibaren geçen saniye sayısını döndüren çağrısından timeelde edilir. Dönüş değeri dizesi tam olarak 26 karakter içerir ve şu forma sahiptir:

Wed Jan 2 02:03:55 1980\n\0

24 saat kullanılır. Tüm alanların genişliği sabit olur. Yeni satır karakteri ('\n') ve null karakter ('\0') dizenin son iki konumunda yer alır.

Dönüştürülen karakter dizesi de yerel saat dilimi ayarlarına göre ayarlanır. Yerel saati yapılandırma hakkında bilgi için bkz time. , _ftimeve localtime işlevleri. Saat dilimi ortamını ve genel değişkenleri tanımlama hakkında ayrıntılı bilgi için işleve _tzset bakın.

_wctime32_s ve _wctime64_s öğesinin geniş karakterli sürümüdür _ctime32_s_ctime64_s; geniş karakterli dizeye bir işaretçi döndürür. Aksi takdirde , _ctime64_s_wctime32_sve _wctime64_s ile aynı şekilde _ctime32_sdavranır.

ctime_s , olarak değerlendirilen _ctime64_s ve time_t ile eşdeğer __time64_tolan bir satır içi işlevdir. Derleyiciyi eski 32 bit time_tolarak yorumlamaya time_t zorlamanız gerekiyorsa tanımlayabilirsiniz_USE_32BIT_TIME_T. Bu makro değerinin değerlendirmesine _ctime32_sneden olurctime_s. Uygulamanız 18 Ocak 2038'in ardından başarısız olabileceği ve 64 bit platformlarda izin verilmediğinden bunu önermiyoruz.

C++'ta bu işlevlerin kullanılması şablon aşırı yüklemeleriyle basitleştirilir; aşırı yüklemeler arabellek uzunluğunu otomatik olarak çıkararak boyut bağımsız değişkeni belirtme gereksinimini ortadan kaldırır. 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şlemeleri

TCHAR.H yordamı _UNICODE ve _MBCS tanımlanmadı _MBCS Tanımlanan _UNICODE Tanımlanan
_tctime_s ctime_s ctime_s _wctime_s
_tctime32_s _ctime32_s _ctime32_s _wctime32_s
_tctime64_s _ctime64_s _ctime64_s _wctime64_s

Gereksinimler

Yordam Gerekli başlık
ctime_s, _ctime32_s, _ctime64_s <time.h>
_wctime_s, _wctime32_s, _wctime64_s <time.h> veya <wchar.h>

Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.

Kitaplıklar

C çalışma zamanı kitaplıklarının tüm sürümleri.

Örnek

// crt_wctime_s.c
// This program gets the current
// time in time_t form and then uses _wctime_s to
// display the time in string form.

#include <time.h>
#include <stdio.h>

#define SIZE 26

int main( void )
{
   time_t ltime;
   wchar_t buf[SIZE];
   errno_t err;

   time( &ltime );

   err = _wctime_s( buf, SIZE, &ltime );
   if (err != 0)
   {
      printf("Invalid Arguments for _wctime_s. Error Code: %d\n", err);
   }
   wprintf_s( L"The time is %s\n", buf );
}
The time is Fri Apr 25 13:03:39 2003

Ayrıca bkz.

Zaman yönetimi
asctime_s, _wasctime_s
ctime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64
_ftime, _ftime32, _ftime64
gmtime_s, _gmtime32_s, _gmtime64_s
localtime_s, _localtime32_s, _localtime64_s
time, _time32, _time64