Linux内核追踪每个进程使用的资 比如 堆栈 代码段 数据段 运行的位置
int getrusage(int who , struct rusage * usage) 检查进程本身,子进程或者两者之和的资源使用
函数返回一个usage结构,存放进程使用的资源
usage是很长的Linux只用前五项
who指明使用的资源中哪一种将被返回,who有三种取值
RUSAGE_SELF 进程本身使用的资源
RUSAGE_CHILDERN 所有进程使用的资源
RUSAGE_BOSH 本身以及所有子进程使用资源的和
函数执行过程中rusage结构体将会被填写,在Linux中填写的只有前五项
#include <sys/resource.h>
struct rusage{
struct timeval ru_utime; 执行用户代码所用的全部时间,包括用来运行应用指令的时间,
不包括内核用来完成应用程序请求的时间
struct timeval ru_stime; 内核用来执行用户请求的全部时间,不包括进程阻塞花的时间
long int ru_minflt; 子进程造成的次要的缺陷数
long int ru_majflt; 进程造成的主要的缺陷数 产生原因:进程访问他的可执行部分(代码段
但这部分还没从磁盘调入内存
long int ru_nswap; 调入内存的页面数
。。。。。。。
}