struct timeval
rappresenta e istante in tempo con due membri, tv_sec
(secondi) e tv_usec
(microsecondi). In questa rappresentazione, tv_usec
non è di per sé un tempo assoluto, ma è un offset al secondo inferiore di tv_sec
.Esiste un modo standard per convertire una struct timeval in una struct timespec?
struct timespec
struct timespec
funziona allo stesso modo eccetto che invece di microsecondi è lo scostamento (tv_nsec
) è memorizzato in unità di nanosecondi.
La domanda è: esiste un metodo standard per la conversione tra questi due?
Dal tv_nsec è un sub secondo di offset, che cosa se la moltiplicazione per 1000 risulta in un valore superiore a 1 miliardo ... Non avresti quindi bisogno di aggiungere 1 a tv_sec e quindi impostare tv_nsec sull'importo superiore a 1 miliardo? – dicroce
No perché 'tv_usec', essendo un offset in microsecondi, è garantito che sia inferiore a 1 milione, quindi moltiplicarlo per 1000 dà un valore inferiore a 1 miliardo. – JaakkoK
E se vuoi passare da un timespec ad un altro, dividi 'tv_nsec' per 1000 per ottenere' tv_usec' (eventualmente aggiungendo 500 prima, per arrotondare). –