使用getrusage获取进程使用系统资源信息

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/resource.h>
#include <time.h>
#include <unistd.h>

int main(void)
{
    while(1)
    {
        struct rusage ru;
        memset(&ru, 0, sizeof(struct rusage));
        getrusage(RUSAGE_SELF, &ru);
        printf("ou/inblock:%ld,%ld,snd/rcvmsg:%ld,%ld,max/ix/idrss:%ld,%ld,%ld,min/majflt:%ld,%ld,signal:%ld,nv/nivcsw:%ld,%ld,swap:%ld,utime:%lu,%lu,stime:%lu,%lu\r\n",
                ru.ru_oublock, ru.ru_inblock,
                ru.ru_msgsnd, ru.ru_msgrcv,
                ru.ru_maxrss, ru.ru_ixrss, ru.ru_idrss,
                ru.ru_minflt, ru.ru_majflt,
                ru.ru_nsignals,
                ru.ru_nvcsw, ru.ru_nivcsw,
                ru.ru_nswap,
                ru.ru_utime.tv_usec, ru.ru_utime.tv_sec,
                ru.ru_stime.tv_usec, ru.ru_stime.tv_sec);
/*
    ru_oublock: 块输出操作
    ru_inblock: 块输入操作
    ru_msgsnd: 发送的message
    ru_msgrcv: 收到的message
    ru_maxrss: 最大驻留集大小
    ru_ixrss: 全部共享内存大小
    ru_idrss:全部非共享内存大小
    ru_minflt: 页回收
    ru_majflt: 页失效
    ru_nsignals: 收到的信号
    ru_nvcsw: 主动上下文切换
    ru_nivcsw: 被动上下文切换
    ru_nswap: 交换区
    ru_utime.tv_usec: 用户态时间 (microseconds)
    ru_utime.tv_sec: 用户态时间(seconds)
    ru_stime.tv_usec: 系统内核时间 (microseconds)
    ru_stime.tv_sec: 系统内核时间(seconds)
*/
        //do something

        sleep(1);
    }
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值