struct timeval
représente et instantané dans le temps avec deux membres, tv_sec
(secondes) et tv_usec
(microsecondes). Dans cette représentation, tv_usec
n'est pas en soi un temps absolu, c'est un sous-second décalage de tv_sec
.Existe-t-il un moyen standard de convertir un struct timeval en struct timespec?
struct timespec
fonctionne de la même manière sauf qu'au lieu de microsecondes son décalage (tv_nsec
) est stocké en unités nanosecondes.
La question est: existe-t-il un moyen standard de convertir entre ces deux?
Depuis tv_nsec est un sous second décalage, et si la multiplication par 1000 donne une valeur supérieure à 1 milliard ... N'auriez-vous pas besoin d'ajouter 1 à tv_sec, puis de mettre tv_nsec à un montant supérieur à 1 milliard? – dicroce
Non car 'tv_usec', étant un décalage en microsecondes, est garanti être inférieur à 1 million, donc le multiplier par 1000 donne une valeur inférieure à 1 milliard. – JaakkoK
Et si vous voulez passer d'un timespec à un timeval, divisez 'tv_nsec' par 1000 pour obtenir' tv_usec' (en ajoutant éventuellement 500 en premier, pour arrondir). –