[LUGOS-PROG] merjenje easa nataeneje kot na sekunde

Branko F. Graèner branko at edico.si
Fri Nov 2 11:40:20 CET 2001


spravil sem nekaj skupaj z gettimeofday(), vendar mi stvar iz nekega razloga
segfaulta....


mi lahko kdo pove, zakaj spodnja zadeva ne deluje? sekunde in mikrosekunde
se pravilno zapišejo v tv_sec in tv_usec v obe strukturi, na kateri kažeta
pointerja *stop in *ura. lahko ju izpišem, vendar stvar pri računanju nekak
pogrne... sem poizkusil že veliko kombinacij pretvorb tipov (iz longint ->
double, float), pa ni nič pomagalo. stvar segfaulta tudi, če za rezultat
izberem tip long int, pa samo odštejem sekunde ... wtf?!? če pri kompajlanju
izberem optimizacijo (-Ox), program, ki drugače zelo preprost segfaulta že
čisto na začetku, ko bi se moglo izvesti printf() ...

brane

--- cut here ---

struct timeval *ura;

void zazeni_uro (void) {
    ura=malloc(sizeof(struct timeval));
    if (ura != NULL) {
           gettimeofday(ura);
     }
}

double ustavi_uro (void) {
    struct timeval *stop;

    stop=malloc(sizeof(struct timeval));

    if (stop != NULL) {
      return((double)((stop->tv_sec - ura->tv_sec)+((stop->tv_usec -
ura->tv_usec)/10000000)));
    }
    free(ura); free(stop);
    return -1;
}




More information about the lugos-prog mailing list