08.11.2014 Views

c_kitap

c_kitap

c_kitap

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

C ve Sistem Programcıları Derneği - C Ders Notları - Necati Ergin<br />

Tarih ve Zaman İle İlgili İşlem Yapan Standart İşlevler<br />

Standart başlık dosyalarından time.h içinde bildirilen, tarih ve zaman bilgileriyle ilgili<br />

faydalı işler yapmak için tanımlanan bazı standart işlevler vardır. Bu işlevlerin bazılarının<br />

parametre değişkenleri ya da geri dönüş değerleri bir yapı türünden adres bilgileridir.<br />

Aşağıda bu işlevler açıklanıyor:<br />

time İşlevi<br />

time_t time (time_t *timer);<br />

İşlevin geri dönüş değeri standart bir typedef türü olan time_t türüdür. Derleyicilerin<br />

çoğunun bu türü long türünün typedef ismi olarak bildirir. İşlevin parametre değişkeni de<br />

bu türden bir adrestir.<br />

İşlev adresi gönderilen nesneye belirli bir tarihten (çoğu sistemde bu tarih 01.01.1970<br />

tarihidir) işlev çağrısına kadar geçen saniye sayısı değerini yazar. Bu değer standartlarda<br />

"takvim zamanı" ("calender time") olarak geçer. Tarih ve zaman üzerinde işlem yapan<br />

diğer bazı işlevler işlerini yapabilmek için bu değere gereksinim duyar.<br />

İşlev, bu değeri aynı zamanda geri dönüş değeri olarak da dışarıya iletir. Eğer takvim<br />

zamanı bilgisi elde edilemiyorsa işlev (time_t)-1 değerine geri döner.<br />

Eğer işleve NULL adresi gönderilirse, işlev bu değeri özel bir ileti olarak algılar, hiçbir<br />

nesneye yazma yapmadan, saniye bilgisini yalnız geri dönüş değeri ile dışarıya aktarır.<br />

Aşağıda işlevin kullanılmasıyla ilgili basit bir kod parçası veriliyor:<br />

#include <br />

#include <br />

int main()<br />

{<br />

time_t timer1, timer2, timer3;<br />

timer1 = time(&timer2);<br />

printf("devam etmek için bir tuşa basın : ");<br />

getchar();<br />

timer3 = time(NULL);<br />

printf("timer1 = %ld\n", (long)timer1);<br />

printf("timer2= %ld\n", (long)timer2);<br />

printf("timer3= %ld\n", (long)timer3);<br />

}<br />

return 0;<br />

localtime İşlevi<br />

01.01.1970'den geçen saniye sayısı yani takvim zamanı doğrudan kullanılabilecek bir<br />

zaman bilgisi değildir. localtime işlevi bu bilgiyi alarak faydalı parçalara ayırır. İşlevin<br />

time.h başlık dosyası içindeki bildirimi aşağıdaki gibidir:<br />

struct tm *localtime(const time_t *timer);<br />

İşlevin geri dönüş değeri, time.h içinde bildirilen bir yapı olan struct tm türünden bir<br />

adrestir. Bu yapı aşağıdaki gibi bildirilmiştir:<br />

397

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!