一、函数简介
在linux c中getrusage主要是获取进程所占用系统的资源情况。
例:用户态占用时间 内核占用时间 页回收 最大驻留集大小(页表中的驻留大小),等等。
二、函数说明
2.1 函数所需头文件
#include < sys/time.h>
#include < sys/resource.h>
2.2 函数原型
int getrusage(int who, struct rusage *usage);
2.3 函数参数说明
who:
RUSAGE_SELF:获取当前进程的资源占用情况
RUSAGE_CHILDREN:获取子进程的资源使用情况
usage:存放资源使用情况的结构体。
/*结构体简介 start*/
rusage结构体 在/usr/include/sys/resource.h中定义,如下所示:
struct rusage {
struct timeval ru_utime;//用户态时间
struct timeval ru_stime;//内核态时间
long ru_maxrss;//最大驻留集大小(页表中分配内存大小)
long ru_ixrss;//全部共享内存大小
long ru_idrss;//全部非共享内存大小
long ru_isrss;//共享堆栈大小
long ru_minflt;//页回收
long ru_majflt;//页失效
long ru_nswap;//交换区
long ru_inblock;//块输入操作
long ru_oublock;//块输出操作
long ru_msgsnd;//发送message
long ru_msgrcv;//接收message
long ru_nsignals;//接收信号
long ru_nvcsw;//上下文主动切换
long ru_nivcsw;//上下文被动切换
};
/*结构体简介 end*/
2.4 函数返回值说明
调用成功返回 0 否则返回 -1
三、函数举例说明