J'ai essayé clock_gettime(CLOCK_REALTIME)
et gettimeofday()
sans chance - Et le plus fondamental comme clock()
, ce qui me renvoie 0 (?).Fonction définitive pour obtenir le temps écoulé en millisecondes
Mais aucun d'entre eux ne compte le temps passé en sommeil. Je n'ai pas besoin d'une minuterie haute résolution, mais j'ai besoin de quelque chose pour obtenir le temps écoulé en ms.
EDIT: Programme final:
#include <iostream>
#include <string>
#include <time.h>
#include <sys/time.h>
#include <sys/resource.h>
using namespace std;
// Non-system sleep (wasting cpu)
void wait (int seconds)
{
clock_t endwait;
endwait = clock() + seconds * CLOCKS_PER_SEC ;
while (clock() < endwait) {}
}
int show_time() {
timeval tv;
gettimeofday(&tv, 0);
time_t t = tv.tv_sec;
long sub_sec = tv.tv_usec;
cout<<"t value: "<<t<<endl;
cout<<"sub_sec value: "<<sub_sec<<endl;
}
int main() {
cout<<show_time()<<endl;
sleep(2);
cout<<show_time()<<endl;
wait(2);
cout<<show_time()<<endl;
}
Il est à noter que est nécessaire pour gettimeofday. –
stinky472
Je l'ai revérifié et je l'ai obtenu pour fonctionner parfaitement avec gettimeofday! Je pense que je faisais quelque chose de mal ... Je vais mettre à jour la question avec mon programme de test final. Merci! – NeDark
Il devrait être 'tv.tv_sec * 1000 + ..' –