1 /* $OpenBSD: getrusage.c,v 1.3 2003/07/31 21:48:08 deraadt Exp $ */ 2 /* 3 * Written by Thomas Nordin <nordin@openbsd.org> 2002 Public Domain. 4 */ 5 #include <err.h> 6 #include <limits.h> 7 #include <stddef.h> 8 #include <stdio.h> 9 #include <stdlib.h> 10 11 #include <sys/time.h> 12 #include <sys/resource.h> 13 #include <sys/types.h> 14 15 int 16 main(int argc, char *argv[]) 17 { 18 struct timeval utime; 19 struct timeval stime; 20 struct rusage r; 21 int i; 22 23 timerclear(&utime); 24 timerclear(&stime); 25 do { 26 if (getrusage(RUSAGE_SELF, &r) == -1) 27 err(1, "getrusage"); 28 29 if (timercmp(&(r.ru_utime), &utime, <)) 30 errx(1, "user time decreased"); 31 utime = r.ru_utime; 32 33 if (timercmp(&(r.ru_stime), &stime, <)) 34 errx(1, "system time decreased"); 35 stime = r.ru_stime; 36 } while (utime.tv_sec < 1 && stime.tv_sec < 1); 37 38 return 0; 39 } 40