asctime_s, _wasctime_s
Dönüştürme bir tm zaman yapısına bir karakter dizesi.Bu işlevler sürümleridir asctime, _wasctime açıklandığı gibi güvenlik geliştirmeleri ile crt güvenlik özellikleri.
errno_t asctime_s(
char* buffer,
size_t numberOfElements,
const struct tm *_tm
);
errno_t _wasctime_s(
wchar_t* buffer,
size_t numberOfElements
const struct tm *_tm
);
template <size_t size>
errno_t asctime_s(
char (&buffer)[size],
const struct tm *_tm
); // C++ only
template <size_t size>
errno_t _wasctime_s(
wchar_t (&buffer)[size],
const struct tm *_tm
); // C++ only
Parametreler
buffer
[Çıkış] Arabellek karakter dizesi sonucu depolamak için bir işaretçi.Bu işlev belirtilen boyutta geçerli bellek konumu gösteren bir işaretçi varsayar numberOfElements.numberOfElements
[in] Sonucu depolamak için kullanılan arabellek boyutu._tm
[in] Saat/tarih yapısı.Bu işlev geçerli bir işaretçi varsayar structtm nesne.
Dönüş Değeri
Başarılı olursa sıfır.Bir hata varsa, geçersiz parametre işleyicisi, açıklandığı şekilde çağrılır Parametre doğrulama.Yürütülmesine devam etmek için izin verilirse, dönüş değeri hata kodudur.Hata kodları HATANO tanımlanır.H.Daha fazla bilgi için bkz. errno sabitleri.Her hata durumu için döndürülen gerçek hata kodları aşağıdaki tabloda gösterilmiştir.
Hata koşulları
buffer |
numberOfElements |
tm |
Return |
İçindeki değerbuffer |
---|---|---|---|---|
NULL |
Herhangi bir |
Herhangi bir |
EINVAL |
Modifiye edilmemiş |
DeğilNULL (noktaları için geçerli bellek) |
0 |
Herhangi bir |
EINVAL |
Modifiye edilmemiş |
DeğilNULL |
0 < Boyut < 26 |
Herhangi bir |
EINVAL |
Boş dize |
DeğilNULL |
> = 26 |
NULL |
EINVAL |
Boş dize |
DeğilNULL |
> = 26 |
Geçersiz zaman yapısı veya bileşenler zaman aralığı değerleri |
EINVAL |
Boş dize |
[!NOT]
Hata koşulları için wasctime_s benzer asctime_s özel durum sözcük sınırına ölçülür.
Notlar
asctime İşlevi bir karakter dizesi için bir yapı olarak depolanan bir süre dönüştürür._tm Değer bir çağrıya elde genellikle gmtime veya localtime.Her iki işlevi doldurmak için kullanılan bir tm , zaman içinde tanımlandığı şekilde yapılandırın.H.
timeptr üye |
Value |
---|---|
tm_hour |
Saat gece (0-23) |
tm_isdst |
Gün ışığından yararlanma saatine devrede ise pozitif; 0 gün ışığından yararlanma saatine etkili değildir; gün ışığından yararlanma saatine durumu bilinmeyen ise negatif.c Çalışma Zamanı Kitaplığı, gün ışığından yararlanma saatine (dst) hesaplama gerçekleştirmek için Amerika Birleşik Devletleri kuralları varsayar. |
tm_mday |
Ayın (günleri 1-31) |
tm_min |
Dakika sonra saat (0-59 arasında) |
tm_mon |
Ay (0–11; Ocak = 0) |
tm_sec |
Saniye sonra dakika (0-59 arasında) |
tm_wday |
Haftanın (0–6; Pazar = 0) |
tm_yday |
(0–365; Yılın günü Ocak 1 = 0) |
tm_year |
Yıl (geçerli yıl 1900 eksi) |
Dönüştürülen karakter dizesi de yerel saat dilimi ayarlara göre ayarlanır.Bkz: time, _time32, _time64, _ftime, _ftime32, _ftime64, ve localtime_s, _localtime32_s, _localtime64_s yerel saat yapılandırma hakkında daha fazla bilgi için İşlevler ve _tzset işlev genel değişkenleri ve saat dilimi ortamı tanımlama hakkında daha fazla bilgi için.
Yapımcı dize sonucu asctime_s tam olarak 26 karakter içerir ve aþaðýdaki biçime sahip Wed Jan 02 02:03:55 1980\n\0.24 Saatlik zaman biçimi kullanılır.Tüm alanları bir sabit genişliğe sahip olur.Yeni satır karakteri ve boş karakter dizesinin son iki pozisyon kaplar.İkinci parametre olarak geçirilen değerin en az bu büyük olması gerekir.Bir hata kodu daha düşük ise, EINVAL, döndürülür.
_wasctime_sgeniş karakter sürümü asctime_s._wasctime_sve asctime_s Aksi takdirde aynı şekilde davranır.
Genel metin yordamı eşleme
TCHAR.H yordamına girildi |
_UNICODE & _mbcs tanımlı değil |
Tanımlanan _mbcs |
Tanımlanan _UNICODE |
---|---|---|---|
_tasctime_s |
asctime_s |
asctime_s |
_wasctime_s |
C++'da, bu işlevler tarafından şablon aşırı kolaylaştırılmıştır; aşırı arabellek uzunluğu otomatik olarak size baðýmsýz deðiþkeni belirtmek için gereksiz gerçekleştirip.Daha fazla bilgi için bkz. Güvenli şablon aşırı yükleme.
Gereksinimler
Yordamı |
Gerekli başlık |
---|---|
asctime_s |
<time.h> |
_wasctime_s |
<time.h> veya <wchar.h> |
Güvenlik
Arabellek işaretçi yoksa NULL ve işaretçi geçerli bir arabelleğe göstermiyor, ne olursa olsun konumdadır işlevi üzerine yazılır.Bu da erişim ihlaline neden olabilir.
A arabellek taşması geçirilen size baðýmsýz deðiþkeni arabellek boyutunun daha büyük olması durumunda oluşabilir.
Örnek
Bu program uzun tamsayı sistem saatini koyar aclock, yapısına çevirir newtime ve sonra dize biçimini kullanarak, çıkış asctime_s işlevi.
// crt_asctime_s.c
#include <time.h>
#include <stdio.h>
struct tm newtime;
__time32_t aclock;
int main( void )
{
char buffer[32];
errno_t errNum;
_time32( &aclock ); // Get time in seconds.
_localtime32_s( &newtime, &aclock ); // Convert time to struct tm form.
// Print local time as a string.
errNum = asctime_s(buffer, 32, &newtime);
if (errNum)
{
printf("Error code: %d", (int)errNum);
return 1;
}
printf( "Current date and time: %s", buffer );
return 0;
}
.NET Framework Eşdeğeri
Ayrıca bkz.
Başvuru
ctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s, _wctime64_s
gmtime_s, _gmtime32_s, _gmtime64_s