14.03.2010

Microtime v C/C++

Jak získat aktuální "microtime" (čas v sekundy s plovoucí čárkou) v C/C++. Pro programování animace či plánovače je to nezbytná funkce.

Dneska jsem se snažil vyřešit triviální problém, jenže jsem nad ním strávil celkem dost času na to jak jednoduché řešení to je. Většina návodů, jak získat aktuální čas v milisekundách, se snažila použít t_clock (počítá takty procesoru), což u mé práce s GUI vůbec nefungovalo. Tady je varianta, která mi v linuxu funguje správně.

#include  <sys/time.h>
#include  <time.h>

double Microtime(){
     timeval tim;
     gettimeofday(&tim, NULL);
     return (tim.tv_sec+(tim.tv_usec/1000000.0));
}

Informace jsem získal z manuálové stránky http://rabbit.eng.miami.edu/info/functions/time.html, kde nalezeneto mnoho užitečných rad ohledně času.