Linux C++获取进程占用内存、机器内存
2021/12/7 7:16:50
本文主要是介绍Linux C++获取进程占用内存、机器内存,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
在Linux C++程序中获取进程占用内存、机器内存的方法:
#include <unistd.h> #include <cstring> #include <iostream> using namespace std; int get_memory_by_pid(pid_t pid) { FILE* fd; char line[1024] = {0}; char virtual_filename[32] = {0}; char vmrss_name[32] = {0}; int vmrss_num = 0; sprintf(virtual_filename, "/proc/%d/status", pid); fd = fopen(virtual_filename, "r"); if(fd == NULL) { cout << "open " << virtual_filename << " failed" << endl; exit(1); } // VMRSS line is uncertain for(int i = 0 ; i < 60; i++) { if(strstr(line, "VMRSS:") != NULL) { sscanf(line, "%s %d", vmrss_name, &vmrss_num); break; } } fclose(fd); return vmrss_num; } int get_machine_memory() { const char* virtual_filename = "/proc/meminfo"; FILE* fd; char line[1024] = {0}; fd = fopen(virtual_filename, "r"); if(fd == NULL) { cout << "open " << virtual_filename << " failed" << endl; exit(1); } char vmrss_name[32]; int machine_memory; fgets(line, sizeof(line), fd); sscanf(line, "%s %d", vmrss_name, &machine_memory); fclose(fd); return machine_memory; } int main() { cout << "The current process consumes " << get_memory_by_pid(getpid()) / 1024 << "MB memory" << endl; cout << "The machine memory: " << get_machine_memory() / 1024 << "MB memory" << endl; return 0; }
这篇关于Linux C++获取进程占用内存、机器内存的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-12如何创建可引导的 ESXi USB 安装介质 (macOS, Linux, Windows)
- 2024-11-08linux的 vi编辑器中搜索关键字有哪些常用的命令和技巧?-icode9专业技术文章分享
- 2024-11-08在 Linux 的 vi 或 vim 编辑器中什么命令可以直接跳到文件的结尾?-icode9专业技术文章分享
- 2024-10-22原生鸿蒙操作系统HarmonyOS NEXT(HarmonyOS 5)正式发布
- 2024-10-18操作系统入门教程:新手必看的基本操作指南
- 2024-10-18初学者必看:操作系统入门全攻略
- 2024-10-17操作系统入门教程:轻松掌握操作系统基础知识
- 2024-09-11Linux部署Scrapy学习:入门级指南
- 2024-09-11Linux部署Scrapy:入门级指南
- 2024-08-21【Linux】分区向左扩容的方法