关于c++内存检测器
  • 板块灌水区
  • 楼主lituoren
  • 当前回复1
  • 已保存回复1
  • 发布时间2022/8/3 17:23
  • 上次更新2023/10/27 17:11:22
查看原帖
关于c++内存检测器
757275
lituoren楼主2022/8/3 17:23
#include <iostream>
#include "stdio.h"
#include <dirent.h>
#include <pwd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <stdlib.h>
#include <string.h>
#include <signal.h>
#include <assert.h>
#include <signal.h>
#include <chrono>
#include <thread>
using namespace std;
using std::this_thread::sleep_for;
//请使用C++实现一个内存监控程序
class SystemInfo{
  public:
    int mem_total;
    int mem_free;
    int mem_cached;
    int swap_cached;
    int swap_total;
    int swap_free;
    SystemInfo getSystemInfo(void);
};

SystemInfo getSystemInfo(){
  FILE *file;
  char buffer[100];
  SystemInfo info ;
  file = fopen("/proc/meminfo","r");
  assert(file);
  if(file){
    while(fgets(buffer,100,file)!=NULL){
            sscanf (buffer, "MemTotal:\t%d kB", &info.mem_total);
            sscanf (buffer, "MemFree:\t%d kB", &info.mem_free);
            sscanf (buffer, "Cached:\t%d kB", &info.mem_cached);
            sscanf (buffer, "SwapCached:\t%d kB", &info.swap_cached);
            sscanf (buffer, "SwapTotal:\t%d kB", &info.swap_total);
            sscanf (buffer, "SwapFree:\t%d kB", &info.swap_free);
    }
  fclose(file);
  }
  return info;
}

int main(void){
  SystemInfo info;
  int i = 0;
  
  while(1){
    if(i==1000){
      info = getSystemInfo();      
      i=0;
      fprintf(stdout,"mem_total   mem_free   mem_cached    swap_cached    swap_total    swap_free\n");
      fflush(stdout);
      fprintf(stdout,"%d    %d   %d       %d              %d             %d",info.mem_total,info.mem_free,info.mem_cached,info.swap_cached,info.swap_total,info.swap_free);          
      fflush(stdout);
      int j = 0;
      sleep_for(std::chrono::milliseconds(1000));
      system("clear");
    }
    i++;
  }
  // info = getSystemInfo();
  // printf("总内存为:%d\t\n",info.mem_total); 
  // printf("%d    %d    %d      %d    %d    %d   %d      %d       %d      %d",info.cpu_user,info.cpu_nice,info.cpu_system,info.cpu_idle,info.mem_total,info.mem_free,info.mem_cached,info.swap_cached,info.swap_total,info.swap_free);
  return 0;
}

如何让它在window中生效(doge

2022/8/3 17:23
加载中...