Pourquoi les deux tv_sec et tv_usec important dans la détermination de la durée d'un timer?
La page de manuel getitimer(2) affirme que
les deux tv_sec et tv_usec important dans la détermination de la
la durée de la minuterie
Il n'a pas à dire pourquoi. Dans de nombreux exemples, que j'ai rencontré tv_sec est mis à 0, tandis que tv_usec est donnée une valeur raisonnable, ou vis versa. Ces temporisateurs de compte à rebours en même temps, ou est le total de la durée de compte à rebours tv_sec + tv_usec? Dois-je utiliser à la fois? Ni?
Je ne crois pas que la page de man comprend "pourquoi..."
Vous êtes un habile homme!
Vous êtes un habile homme!
OriginalL'auteur Ziggy | 2012-02-23
Vous devez vous connecter pour publier un commentaire.
La page de man documents de la
timeval
structure:Si vous voulez attendre un nombre entier de secondes, vous devez simplement régler
tv_sec
. Si vous voulez attendre une fraction de seconde, vous définisseztv_usec
. Si vous voulez attendre 4,5 secondes, vous définissez les deux de avec des valeurs appropriées (4 et 500 000, respectivement)POSIX ne semble pas préciser de comportement pour tous les cas de coin (tv_usec < 0, tv_nsec < 0, tv_usec > 1000000, tv_nsec > 1000000000), il est donc préférable de ne pas laisser se produire.
OriginalL'auteur Damien_The_Unbeliever
La structure est décrite:
Comme vous le voyez, le temps total est
tv_sec + (1.0/1000000) * tv_usec
secondes. C'est pourquoi, lorsque vous avez besoin de temps de moins d'une seconde pour vous l'ensembletv_usec
, lorsque vous avez besoin de temps de plus de 1sec vous définissez à la fois (mais finissent généralement paramètre uniquementtv_sec
)OriginalL'auteur Mihai Maruseac
Oui, le temps total est la somme des deux. tv_sec est l'secondes. Et tv_usec est microsecondes au-delà.
Oui. Il sera de 1,25
OriginalL'auteur user1118321
tv_sec va prendre en charge la totalité secondes, tandis que tv_usec poignées de quelques microsecondes.
Quelques microsecondes sera réinitialisé à 0 lorsqu'il se à son maximum (1 million) et incrémente le nombre de secondes seulement comme un simple chronomètre.
OriginalL'auteur HyperionX
J'ai eu une fuite de mémoire parce que je n'ai pas tv_usec. Ordinateur prend une somme de ces deux valeurs et si vous initialisez pas l'un d'eux la somme de la valeur pourrait être aléatoire.
OriginalL'auteur mroczny