Bildirim
int timespec_get(struct timespec *ts, int base); (C11)
Açıklama
Ts parametresi ile gösterilen timespec değişkeni içindeki değerlere base parametresi ile gösterilen zaman dilimine göre değer verir.
Eğer base parametre değeri TIME_UTC ise, ts->tv_sec değeri 1 Ocak 1970'den bugüne geçen zamanı saniye olarak alır. ts->tv_nsec değeri ise, sistem saatine göre yuvarlanarak, integral nanosaniye sayısını alır.
Parametreler
ts: Timespec yapı değişkenini gösteren bir işaretçidir.
base: Zaman dilimini gösteren TIME_UTC veya sıfır olmayan farklı bir değerdir.
Dönüş değeri
Base parametresine göre zaman değerini aksi takdirde 0 değerini geri döndürür.
Örnek
#include <stdio.h>
#include <time.h>
int main(void)
{
struct timespec ts;
char cdizi[100];
timespec_get(&ts, TIME_UTC);
printf("Saniye: %ld\n", ts.tv_sec);
printf("Nanosaniye: %09ld\n", ts.tv_nsec);
strftime(cdizi, sizeof(cdizi), "Bugün: %d %B %Y %A Saat: %X", gmtime(&ts.tv_sec));
printf("%s.%09ld UTC\n", cdizi, ts.tv_nsec);
return 0;
}
Yukarıdaki örnekte, program aşağıdaki satırları ekrana yazar.
Saniye: 1571196627 Nanosaniye: 786496858 Bugün: 16 October 2019 Wednesday Saat: 03:30:27.786496858 UTC
Program timespec_get() fonksiyonu ile 1 Ocak 1970'den bugüne geçen zamanı UTC zaman dilimine göre saniye ve nanosaniye olarak alır. Bu değerleri ekrana yazdıktan sonra, gmtime() fonksiyonu ile tm yapısına çevirerek strftime() fonksiyonu ile zaman karakter dizisini kullanıcı tanımlı olarak yapılandırır. Bu zaman yapısını nanosaniye değeri ile birleştirerek ekrana yazar.