1#include <time.h>23#include <sys.h>45#include "time.h"67#define TOCLOCK(r) (r.tv_sec * CLOCKS_PER_SEC +\8 r.tv_usec / (1000000 / CLOCKS_PER_SEC))910struct rusage {11 struct timeval ru_utime;12 struct timeval ru_stime;13 long int ru_maxrss;14 long int ru_ixrss;15 long int ru_idrss;16 long int ru_isrss;17 long int ru_minflt;18 long int ru_majflt;19 long int ru_nswap;20 long int ru_inblock;21 long int ru_oublock;22 long int ru_msgsnd;23 long int ru_msgrcv;24 long int ru_nsignals;25 long int ru_nvcsw;26 long int ru_nivcsw;27};2829extern int _getrusage(int, struct rusage*);3031clock_t32clock(void)33{34 struct rusage ru;3536 if (_getrusage(RUSAGE_SELF, &ru))37 return -1;3839 return TOCLOCK(ru.ru_utime) + TOCLOCK(ru.ru_stime);40}