Bonjour tout le monde,
Voilà, j'ai deux varibles de type struct timespec t1 et t2 avec t2 > t1 (c'est à dire que t2 est plus éloigné de l'origine que t1). Je voudrais calculer la différence de temps entre ces deux valeurs et stocker le résultat dans une struct timespec. Quelq'un a t-il une idée ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 struct timespec { time_t tv_sec; /* secondes */ long tv_nsec; /* nano-secondes */ }; struct timespec t1; struct timespec t2; struct timespec diff;
J'ai pensé convertir le tout en nano secondes, faire la soustraction et reconvertir, mais ça ne fonctionne pas, puisque dans la convertion il peut y avoir un dépassement de la valeur entière maximale en multipliant un nombre élevé de seconde par 10^9. Evidemment la soustraction immédiate ne peut pas être employée à cause du cas trivial suivant.
merci pour toutes vos suggestions.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 t1.tv_sec = 1135296000; t1.tv_nsec = 156789; t2.tv_sec = 1135296005; // on a bien t2 > t1 mais la soustraction "simple" t2.tv_nsec = 45321; // donnerait une valeur erronées pour les sec et nsec
Partager