Salut,
Am gasit eroarea, am rezolvat problema. Multumesc tuturor pentru ajutor.
Numai bine,
/Gabi
On Tue, 2003-12-02 at 09:17, VLS wrote:
> On 02 Dec 2003 13:36:22 -0500
> Gabriel Moruz <[EMAIL PROTECTED]> wrote:
>
> > Salutare,
> >
> > Am o problema cu gettimeofday. Mai precis, vreau sa aflu timpul de
> > executie al unei functii (care e suficient de mare, peste o sec). Am
> > incercat cu gettimeofday inainte si dupa apelul functiei, iar cand am
> > facut diferenta dintre cele 2 valori am avut surpriza sa obtin o
> > valoare negativa, total diferita de time. Ceva idei sau alternative?
>
> salut,
>
> mai mult ca sigur ai facut gresit scaderea. Ideea e ca tv_usec poate fi
> mai mare decat 1000000 fara ca tv_sec sa se incrementeze.
> Scaderea o faci corect cam asa:
>
> #define USEC_PER_SEC 1000000
>
> --------------------------------------------------
> /**
> * struct timeval c = a - b
> */
> void tv_sub(struct timeval * a, struct timeval * b, struct timeval * c)
> {
> unsigned int nsec;
> struct timeval tmp;
>
> tmp.tv_sec = b->tv_sec;
> tmp.tv_usec = b->tv_usec;
>
> if (a->tv_usec < tmp.tv_usec)
> {
> nsec = (tmp.tv_usec - a->tv_usec) / USEC_PER_SEC + 1;
> tmp.tv_usec -= USEC_PER_SEC * nsec;
> tmp.tv_sec += nsec;
> }
>
> if (a->tv_usec - tmp.tv_usec > USEC_PER_SEC)
> {
> nsec = (a->tv_usec - tmp.tv_usec) / USEC_PER_SEC;
> tmp.tv_usec += USEC_PER_SEC * nsec;
> tmp.tv_sec -= nsec;
> }
>
> c->tv_sec = a->tv_sec - tmp.tv_sec;
> c->tv_usec = a->tv_usec - tmp.tv_usec;
> }
>
> ------------------------------------------------
>
> vls
>
> ---
> Detalii despre listele noastre de mail: http://www.lug.ro/
>
---
Detalii despre listele noastre de mail: http://www.lug.ro/