一、计算CPU利用率(计算方式与top指令源码方式相同)
1.计算宿主机的cpu核数
2. 从文件中读取本身进程的一段时间使用情况,即隔一段时间分别获取使用情况,通过这段时间的(使用时间)/(总时间),即可得到cpu利用率,代码如下:
#include "stdlib.h"
#include "stdio.h"
#include "unistd.h"
#include <iostream>
#include <string>
#include <fstream>
typedef struct cpu_usage_info
{
unsigned long cpu_total_usage;
unsigned long system_useage;
}CPU_USAGE_INFO;
typedef struct cpu_sys_info
{
char szName[16];
unsigned long user; // 从系统启动开始累计到当前时刻,用户态的CPU时间(单位:jiffies) ,不包含 nice值为负进程。1jiffies=0.01秒
unsigned long nice; // 从系统启动开始累计到当前时刻,nice值为负的进程所占用的CPU时间(单位:jiffies)
unsigned long system; // 从系统启动开始累计到当前时刻,核心时间(单位:jiffies)
unsigned long idle; // 从系统启动开始累计到当前时刻,除硬盘IO等待时间以外其它等待时间(单