struct timeval
repräsentiert und sofort mit zwei Mitgliedern, tv_sec
(Sekunden) und tv_usec
(Mikrosekunden). In dieser Darstellung ist tv_usec
nicht von selbst eine absolute Zeit, es ist eine Subsekundenverschiebung von tv_sec
.Gibt es eine Standardmethode, um eine Struktur timeval in eine struct timepec umzuwandeln?
struct timespec
funktioniert auf die gleiche Weise, außer dass anstelle von Mikrosekunden der Offset (tv_nsec
) in Nanosekunden-Einheiten gespeichert wird.
Die Frage ist: Gibt es einen Standard Weg, zwischen diesen beiden zu konvertieren?
Da tv_nsec ein Unter ist an zweiter Stelle versetzt ist, was passiert, wenn die Multiplikation mit 1000 ergibt einen Wert größer als 1 Milliarde ... Müssten Sie dann nicht 1 zu tv_sec hinzufügen und dann tv_nsec auf den Wert über 1 Milliarde setzen? – dicroce
Nein, weil 'tv_usec', ein Offset in Mikrosekunden, garantiert kleiner als 1 Million ist, also multipliziert mit 1000 ergibt das einen Wert von weniger als 1 Milliarde. – JaakkoK
Und wenn du von einer Zeitangabe zu einer Zeitangabe wechseln willst, dann teilst du 'tv_nsec' durch 1000, um' tv_usec' zu erhalten (möglicherweise addiere 500 zuerst, um aufzurunden). –