Bildirim
char* ctime(const time_t *timer);
errno_t ctime_s(char *buf, rsize_t bufsz, const time_t *timer); (C11)
Açıklama
Timer parametresi ile gösterilen time_t değerini yerel zamana çevirdikten sonra yıl, ay, gün ve saat bilgilerini içeren karakter dizisini geri döndürür. Geri döndürülen karakter dizisi aşağıdaki yapıdadır:
www mmm dd hh:mm:ss yyyy
Mon Oct 14 18:47:24 2019
www: Haftanın gününü 3 harf ile gösterir.
mmm: Ayı 3 harf ile gösterir.
dd: Ayın kaçıncı günü olduğunu sayı ile gösterir.
hh: Günün saatini gösterir.
mm: Dakikayı gösterir.
ss: Saniyeyi gösterir.
Geri döndürülen karakter dizisi yeni satır karakteri ('\n') ve boş bir karakter ('\0') ile sonlandırılır.
ctime_s() fonksiyonu ayrıca, karakter dizisini kullanıcı tarafından sağlanan ve buf parametresi ile gösterilen boş bir karakterle sonlandırılmış olan belleğe kopyalar. Aşağıdaki hatalar çalışma zamanında algılandığında, yüklenmiş olan kısıtlayıcı işlem fonksiyonu çağrılır:
Parametreler
timer: Yazdırılacak zamanı tanımlayan time_t değişkenini gösteren bir işaretçidir.
buf: En az 26 byte uzunluğunda kullanıcı tarafından sağlanan belleği gösteren bir işaretçidir.
bufsz: Kullanıcı tarafından sağlanan belleğin boyutudur.
Dönüş değeri
Asctime() fonksiyonu time_t yapısındaki bir zamanı boş bir karakterler sonlandırılmış karakter dizisi halinde geri döndürür.
Asctime_s() fonksiyonu başarı durumunda 0 değerini, hata durumunda sıfır olmayan değer geri döndürür. Hata durumunda ayrıca, buf NULL bir işaretçi değilse veya bufsz sıfır değilse veya RSIZE_MAX değerinden büyük değil ise, buf[0] adresine 0 değerini yazar.
Örnek
#include <stdio.h>
#include <time.h>
int main(void)
{
time_t time_1970;
time_1970 = time(NULL);
/* Yerel zamanı doğrudan ctime() fonksiyonu ile ekrana yazma */
/* ctime() = localtime() + asctime() */
printf("Yerel zaman: %s", ctime(&time_1970));
return 0;
}
Yukarıdaki örnekte, program aşağıdaki satırları ekrana yazar.
Yerel zaman: Tue Oct 15 07:06:21 2019
Program time() fonksiyonu ile 1 Ocak 1970'den bugüne geçen zamanı saniye olarak alır. Bu değeri ctime() fonksiyonu ile yerel zamana çevirerek bir karakter dizisi olarak ekrana yazar.