C Linux -- saat milisaniye zaman alma ()'t düzgün çalışması için görünmüyor | Netgez.com
SORU
25 ŞUBAT 2009, ÇARŞAMBA


C Linux -- saat milisaniye zaman alma ()'t düzgün çalışması için görünmüyor

Windows, clock() iade süresi milisaniye, ama bu Linux kutusu üzerinde çalışıyorum, bu defa en yakın 1000 çok hassas sadece "ikinci" düzeyinde değil, milisaniye düzeyinde.

Qt QTime sınıfını kullanarak, bir nesneyi başlatmasını ve üzerinde start() çağıran bir çözüm elapsed() geçen milisaniye sayısı için çağrıda bulundu.

Qt ile başlamak için çalışıyorum çünkü biraz şansım yaver gitti, ama üçüncü parti kütüphaneler itimat etmeyen bir çözüm istiyorum

Standart bir yolu bunu yapmak için vardır?

GÜNCELLEME

Lütfen .. Boost tavsiye etmiyorum

Eğer Artırmak ve Qt yapabiliyorsa, bu sihir değil elbette kullanıyorlar bunun bir standardı olmalı.

CEVAP
25 ŞUBAT 2009, ÇARŞAMBA


#include <sys/time.h>
#include <stdio.h>
#include <unistd.h>
int main()
{
    struct timeval start, end;

    long mtime, seconds, useconds;    

    gettimeofday(&start, NULL);
    usleep(2000);
    gettimeofday(&end, NULL);

    seconds  = end.tv_sec  - start.tv_sec;
    useconds = end.tv_usec - start.tv_usec;

    mtime = ((seconds) * 1000   useconds/1000.0)   0.5;

    printf("Elapsed time: %ld milliseconds\n", mtime);

    return 0;
}

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ★ByScrapi★ Designs

    ★ByScrapiâ

    27 AÄžUSTOS 2013
  • Chilla Frillaâ„¢

    Chilla Frill

    7 Aralık 2006
  • Epic Tutorials for iPhone, iPad and iOS

    Epic Tutoria

    18 EYLÜL 2011