[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