社区讨论
关于c++内存检测器
灌水区参与者 2已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @lo8e8x1p
- 此快照首次捕获于
- 2023/10/27 17:11 2 年前
- 此快照最后确认于
- 2023/10/27 17:11 2 年前
CPP
#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
回复
共 1 条回复,欢迎继续交流。
正在加载回复...