Giriş
Şu satırı dahil ederiz.
Kullanım
İkinci parametre timezone bilgisini almak üzere tasarlanmış ancak problemli olduğu için hep NULL geçilir. Şöyle yaparız.
struct timeval'in içi şöyle
Şu satırı dahil ederiz.
#include <sys/time.h>
Posix Epoch'tan beri geçen süreyi saniye + mikrosaniye çözünürlüğünde alabilmemizi sağlar. Bu metod obselete edilmiştir. clock_gettime metodunun kullanılması tavsiye edilmektedir.Kullanım
İkinci parametre timezone bilgisini almak üzere tasarlanmış ancak problemli olduğu için hep NULL geçilir. Şöyle yaparız.
struct timeval tv;
int rc = gettimeofday(&tv, NULL);
if (rc == -1) {
printf("Error: gettimeofday() failed\n");
...
}
struct timeval yapısıstruct timeval'in içi şöyle
struct timeval {
time_t tv_sec;
seconds_t tv_usec;
}
İki alanın açıklaması aşağıda.
difftime metodu
Şöyle yaparız. Mikrosaniye 1 milyona bölünerek saniyeye çevrilir. Toplam saniye döndürülür.
Farkı BulmakA timeval has two components, both ints. One (called tv_sec) is exactly the value that would be returned by time, the time in seconds since 1/1/1970. The other (called tv_usec) is the number of microseconds into that second.
difftime metodu
Şöyle yaparız. Mikrosaniye 1 milyona bölünerek saniyeye çevrilir. Toplam saniye döndürülür.
double wallclock_since(timeval const start)
{
struct timeval now;
gettimeofday(&now, NULL);
return difftime(now.tv_sec, start.tv_sec)
+ ((double)now.tv_usec - (double)start.tv_usec) / 1000000.0;
}
Elle Hesaplama
Örnek
Şöyle yaparız.
Örnek
Şöyle yaparız.
float timedifference_msec(struct timeval t0, struct timeval t1) {
return (t1.tv_sec - t0.tv_sec) * 1000.0f + (t1.tv_usec - t0.tv_usec) / 1000.0f;
}
int main()
{
struct timeval t0;
struct timeval t1;
float elapsed;
gettimeofday(&t0, 0);
...
gettimeofday(&t1, 0);
elapsed = timedifference_msec(t0, t1);
printf("%f\n", elapsed);
Hiç yorum yok:
Yorum Gönder