Files
seta75D 2e8a93c394 Init
2021-10-11 18:20:23 -03:00

40 lines
1.0 KiB
C

#ifndef lint
static char sccsid[] = "@(#)etime_.c 1.1 92/07/30 SMI"; /* from UCB 1.1" */
#endif
/*
*
* Return the elapsed execution time for this process.
*
* calling sequence:
* real time(2)
* call etime (time)
* where:
* the 2 element array, time, will receive the user and system
* elapsed time since the start of execution.
*
* This routine can be called as function, and returns the sum of
* user and system times. The time array argument must always be given.
*
* The resolution for all timing is governed by _hz in /vmunix
*/
#include <sys/time.h>
#include <sys/resource.h>
#include <math.h>
#define RUSAGE_SELF 0
struct tb { float usrtime; float systime; };
FLOATFUNCTIONTYPE etime_(et) struct tb *et;
{ struct rusage rusage;
float f;
getrusage(RUSAGE_SELF, &rusage);
et->usrtime = (float) (rusage.ru_utime.tv_sec + rusage.ru_utime.tv_usec * .000001 );
et->systime = (float) (rusage.ru_stime.tv_sec + rusage.ru_stime.tv_usec * .000001 );
f= et->usrtime + et->systime;
RETURNFLOAT(f);
}