📄 getrusage.c
字号:
/* $Id: getrusage.c,v 1.11 1998/12/12 19:57:51 momjian Exp $ */#include <stdio.h>#include <errno.h>#include "rusagestub.h"/* This code works on: * univel * solaris_i386 * sco * solaris_sparc * svr4 * hpux 9.* * which currently is all the supported platforms that don't have a * native version of getrusage(). So, if configure decides to compile * this file at all, we just use this version unconditionally. */intgetrusage(int who, struct rusage * rusage){ struct tms tms; int tick_rate = CLK_TCK; /* ticks per second */ clock_t u, s; if (rusage == (struct rusage *) NULL) { errno = EFAULT; return -1; } if (times(&tms) < 0) { /* errno set by times */ return -1; } switch (who) { case RUSAGE_SELF: u = tms.tms_utime; s = tms.tms_stime; break; case RUSAGE_CHILDREN: u = tms.tms_cutime; s = tms.tms_cstime; break; default: errno = EINVAL; return -1; }#define TICK_TO_SEC(T, RATE) ((T)/(RATE))#define TICK_TO_USEC(T,RATE) (((T)%(RATE)*1000000)/RATE) rusage->ru_utime.tv_sec = TICK_TO_SEC(u, tick_rate); rusage->ru_utime.tv_usec = TICK_TO_USEC(u, tick_rate); rusage->ru_stime.tv_sec = TICK_TO_SEC(s, tick_rate); rusage->ru_stime.tv_usec = TICK_TO_USEC(u, tick_rate); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -