Clock_gettime... [Résolu]

Signaler
Messages postés
43
Date d'inscription
mercredi 24 novembre 2010
Statut
Membre
Dernière intervention
26 février 2014
-
StayCrunchy
Messages postés
43
Date d'inscription
mercredi 24 novembre 2010
Statut
Membre
Dernière intervention
26 février 2014
-
Bonjour,
Voila, je veux calculer la durée d'execution de mon petit programme et ce de maniere précise (car c'est très très rapide).
Alors j'ai cherché un peu et j'ai voulu utiliser clock_gettime() (j'utilise gcc sous linux).
Alors je dois comprendre quelque chose de travers parce que je ne parviens pas du tout à l'utiliser...

j'ai ecris un truc simple donc ceux qui connaissent la fonction devraient voir l'erreur tout de suite :

#include <time.h>

int main()
{
...struct timespec time;
...clockid_t id_t = CLOCK_REALTIME;

...clock_gettime(id_t, time);
}


quand je veux compiler, j'obtiens :
"undefine reference to clock_gettime "
A voir également:

6 réponses

Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
11
Salut,

pas super doué en C/C++ (j'en fais plus depuis des années), je suis par contre pas mauvais avec google ^^
D'après ce lien il faut ajouter la lib "rt" lors de la compilation (option -lrt).

ça vaut ce que ça vaut, mais ça se tente, nop ?

Bon courage
Messages postés
3802
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
9 janvier 2020
94
Tu peux avoir le même résultat, sans te lier à des bibliothèques externes:
#include <stdio.h>
#include <time.h>
#include <sys/time.h>

int main(void)
{
  struct timeval begin, end;
  struct timezone tz;
  int i = 0;
  long time = 0;

  gettimeofday(&begin, &tz);
  /* Operation */
  for (i = 0; i < 100000; ++i)
    ;
  gettimeofday(&end, &tz);

  time = (end.tv_sec - begin.tv_sec) *
    1000000L + (end.tv_usec - begin.tv_usec);

  printf("%ld us\n", time);
  return 0;
}


Compiler comme ceci:
gcc -W -Wall -pedantic time.c


________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
Messages postés
43
Date d'inscription
mercredi 24 novembre 2010
Statut
Membre
Dernière intervention
26 février 2014

clock_gettime( id_t, &time);
j'ai oublié le & dans ce que j'ai ecris juste avant
Messages postés
43
Date d'inscription
mercredi 24 novembre 2010
Statut
Membre
Dernière intervention
26 février 2014

En effet, c'était un problème de compilation (c'était d’ailleurs précisé dans le man ... ) .
Merci pour le coup de pouce ;)
Messages postés
43
Date d'inscription
mercredi 24 novembre 2010
Statut
Membre
Dernière intervention
26 février 2014

La solution de Cpt_pingu marche parfaitement
Messages postés
43
Date d'inscription
mercredi 24 novembre 2010
Statut
Membre
Dernière intervention
26 février 2014

ps : Merci ;)