struct rusage是一个用于记录进程资源使用情况的结构体。它包含了各种资源的统计信息,例如CPU时间、内存使用量、文件IO等。\n\nrusage结构体的定义如下:\n\nc\nstruct rusage {\n struct timeval ru_utime; /* 用户态运行时间 */\n struct timeval ru_stime; /* 系统态运行时间 */\n long ru_maxrss; /* 最大常驻集大小 */\n long ru_ixrss; /* 累计分配给进程的共享内存大小 */\n long ru_idrss; /* 累计分配给进程的非共享数据段大小 */\n long ru_isrss; /* 累计分配给进程的非共享栈大小 */\n long ru_minflt; /* 分配给进程的页面错误次数 */\n long ru_majflt; /* 分配给进程的重大页面错误次数 */\n long ru_nswap; /* 交换到磁盘的次数 */\n long ru_inblock; /* 从块设备读取的次数 */\n long ru_oublock; /* 向块设备写入的次数 */\n long ru_msgsnd; /* 发送的消息数 */\n long ru_msgrcv; /* 接收的消息数 */\n long ru_nsignals; /* 接收的信号数 */\n long ru_nvcsw; /* 自愿切换上下文的次数 */\n long ru_nivcsw; /* 非自愿切换上下文的次数 */\n};\n\n\n在Linux系统中,可以使用getrusage函数来获取进程的资源使用情况,并将结果存储在rusage结构体中。\n\nc\n#include <sys/resource.h>\n\nint getrusage(int who, struct rusage *usage);\n\n\n其中,who参数指定了要获取资源使用情况的进程,可以是RUSAGE_SELF(当前进程)、RUSAGE_CHILDREN(所有子进程)或RUSAGE_THREAD(当前线程)。usage参数是一个指向rusage结构体的指针,用于存储获取到的资源使用情况。\n\n调用getrusage函数后,可以通过访问rusage结构体的成员来获取所需的资源使用统计信息。

rusage结构体:Linux进程资源使用情况统计

原文地址: https://www.cveoy.top/t/topic/p2oO 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录