Warum sind sowohl tv_sec als auch tv_usec für die Bestimmung der Dauer eines Timers von Bedeutung?

7

Die manuelle Seite gatitimer (2) behauptet, dass

  

Sowohl tv_sec als auch tv_usec sind für die Bestimmung der   Dauer eines Timers

Es wird nicht weiter gesagt, warum das so ist. In vielen Beispielen, die ich über tv_sec gefunden habe, wird einfach auf 0 gesetzt, während tv_usec einen vernünftigen Wert erhält, oder umgekehrt. Zählen diese Timer gleichzeitig oder ist die Countdown-Zeit tv_sec + tv_usec? Sollte ich beides benutzen? Weder?

    
Ziggy 23.02.2012, 05:14
quelle

5 Antworten

17

Die man-Seite dokumentiert die timeval -Struktur :

%Vor%

Wenn Sie eine ganze Anzahl von Sekunden warten möchten, müssen Sie nur tv_sec setzen. Wenn Sie eine Sekunde warten möchten, setzen Sie tv_usec . Wenn Sie 4,5 Sekunden warten möchten, setzen Sie beide auf die entsprechenden Werte (4 bzw. 500000)

    
Damien_The_Unbeliever 23.02.2012, 05:19
quelle
3

Die Struktur wird jedoch beschrieben:

%Vor%

Wie Sie sehen, ist die Gesamtzeit tv_sec + (1.0/1000000) * tv_usec Sekunden. Wenn Sie also Zeiten unter einer Sekunde benötigen, setzen Sie tv_usec , wenn Sie Zeiten über 1sec benötigen, setzen Sie beide (aber normalerweise setzen Sie nur tv_sec )

    
Mihai Maruseac 23.02.2012 05:19
quelle
1

Ja, die Gesamtzeit ist die Summe aus beiden. tv_sec ist die Sekunde. Und tv_usec ist Mikrosekunden darüber hinaus.

    
user1118321 23.02.2012 05:17
quelle
0
  

long int tv_usec Dies ist der Rest der verstrichenen Zeit (ein Bruchteil einer   Sekunde), dargestellt als die Anzahl von Mikrosekunden. Es ist immer weniger   als eine Million.

tv_sec die vollen Sekunden handhaben, während tv_usec die Mikrosekunden behandelt.

Die Mikrosekunden wird wieder auf 0 zurückgesetzt, wenn es um seine max (1 Million) zu erhalten und erhöht die Sekunden wie eine normale Stoppuhr.

    
HyperionX 07.09.2015 12:16
quelle
-1

Ich hatte ein Speicherleck, deswegen habe ich tv_usec nicht gesetzt. Comuter nimmt eine Summe dieser beiden Werte und wenn Sie einen von ihnen nicht initialisieren, könnte der Summenwert zufällig sein.

    
mroczny 21.05.2014 13:00
quelle

Tags und Links