On Thu, 30 May 2002 14:49 +0300, Mihai RUSU wrote:
 > Salut
 > 
 >        struct timeval {
 >                long tv_sec;        /* seconds */
 >                long tv_usec;  /* microseconds */
 >        };
 > 
 > Am un timeval citit cu gettimeofday si alt timeval ce reprezinta un
 > interval (de ex. pentru select()). Cum adun cele 2 timeval-uri ?

Daca a si b sint structuri timeval, atunci a + b se calculeaza
astfel, conform macro-ului timeradd din /usr/include/sys/time.h:

# define timeradd(a, b, result)                                               \
  do {                                                                        \
    (result)->tv_sec = (a)->tv_sec + (b)->tv_sec;                             \
    (result)->tv_usec = (a)->tv_usec + (b)->tv_usec;                          \
    if ((result)->tv_usec >= 1000000)                                         \
      {                                                                       \
        ++(result)->tv_sec;                                                   \
        (result)->tv_usec -= 1000000;                                         \
      }                                                                       \
  } while (0)


 > Am facut un programel de test sa afisez la infinit gettimeofday sa vad
 > daca tv_usec pur si simplu numara microsecundele dintr-o secunda dar se
 > pare ca nu e chiar asa. Creste cu inaintarea in timp dar cand gettimeofday
 > imi intoarce deja secunda urmatoare, tv_usec scade brusc (dar nu o ia de
 > la 0, sau ma rog, aproximativ 0).

Da, acuma vrei si tu sa reusesti sa apelezi un system call de un
milion de ori pe secunda, unde te crezi? :-)

 > Nestiind exact ce reprezinta tv_usec nu pot sa imi fac un #define sau o
 > rutina de adunare 2 timeval...

Le ai deja in /usr/include/sys/time.h. Vezi ca man gettimeofday
pomeneste despre conditiile in care se vede timeradd si altele.


-- 
Radu Greab
---
Pentru dezabonare, trimiteti mail la 
[EMAIL PROTECTED] cu subiectul 'unsubscribe rlug'.
REGULI, arhive si alte informatii: http://www.lug.ro/mlist/


Raspunde prin e-mail lui