c语言 查看系统内存,C/C++获取系统物理内存大小
1、各平台调用接口
2、接口实现#if defined(_WIN32)
#include
#elif defined(__unix__) || defined(__unix) || defined(unix) || (defined(__APPLE__) && defined(__MACH__))
#include
#include
#include
#if defined(BSD)
#include
#endif
#else
#error "Unable to define getMemorySize( ) for an unknown OS."
#endif
size_t getMemorySize( )
{
#if defined(_WIN32) && (defined(__CYGWIN__) || defined(__CYGWIN32__))
/* Cygwin under Windows. ------------------------------------ */
/* New 64-bit MEMORYSTATUSEX isn't available. Use old 32.bit */
MEMORYSTATUS status;
status.dwLength = sizeof(status);
GlobalMemoryStatus( &status );
return (size_t)status.dwTotalPhys;
#elif defined(_WIN32)
/* Windows. ------------------------------------------------- */
/* Use new 64-bit MEMORYSTATUSEX, not old 32-bit MEMORYSTATUS */
MEMORYSTATUSEX status;
status.dwLength = sizeof(status);
GlobalMemoryStatusEx( &status );
return (size_t)status.ullTotalPhys;
#elif defined(__unix__) || defined(__unix) || defined(unix) || (defined(__APPLE__) && defined(__MACH__))
/* UNIX variants. ------------------------------------------- */
/* Prefer sysctl() over sysconf() except sysctl() HW_REALMEM and HW_PHYSMEM */
#if defined(CTL_HW) && (defined(HW_MEMSIZE) || defined(HW_PHYSMEM64))
int mib[2];
mib[0] = CTL_HW;
#if defined(HW_MEMSIZE)
mib[1] = HW_MEMSIZE; /* OSX. --------------------- */
#elif defined(HW_PHYSMEM64)
mib[1] = HW_PHYSMEM64; /* NetBSD, OpenBSD. --------- */
#endif
int64_t size = 0; /* 64-bit */
size_t len = sizeof( size );
if ( sysctl( mib, 2, &size, &len, NULL, 0 ) == 0 )
return (size_t)size;
return 0L; /* Failed? */
#elif defined(_SC_AIX_REALMEM)
/* AIX. ----------------------------------------------------- */
return (size_t)sysconf( _SC_AIX_REALMEM ) * (size_t)1024L;
#elif defined(_SC_PHYS_PAGES) && defined(_SC_PAGESIZE)
/* FreeBSD, Linux, OpenBSD, and Solaris. -------------------- */
return (size_t)sysconf( _SC_PHYS_PAGES ) *
(size_t)sysconf( _SC_PAGESIZE );
#elif defined(_SC_PHYS_PAGES) && defined(_SC_PAGE_SIZE)
/* Legacy. -------------------------------------------------- */
return (size_t)sysconf( _SC_PHYS_PAGES ) *
(size_t)sysconf( _SC_PAGE_SIZE );
#elif defined(CTL_HW) && (defined(HW_PHYSMEM) || defined(HW_REALMEM))
/* DragonFly BSD, FreeBSD, NetBSD, OpenBSD, and OSX. -------- */
int mib[2];
mib[0] = CTL_HW;
#if defined(HW_REALMEM)
mib[1] = HW_REALMEM; /* FreeBSD. ----------------- */
#elif defined(HW_PYSMEM)
mib[1] = HW_PHYSMEM; /* Others. ------------------ */
#endif
unsigned int size = 0; /* 32-bit */
size_t len = sizeof( size );
if ( sysctl( mib, 2, &size, &len, NULL, 0 ) == 0 )
return (size_t)size;
return 0L; /* Failed? */
#endif /* sysctl and sysconf variants */
#else
return 0L; /* Unknown OS. */
#endif
}
使用
size_t memorySize = getMemorySize( );
c语言 查看系统内存,C/C++获取系统物理内存大小相关推荐
- 获取系统时间出错oracle-,oracle 获取系统时间(转)
Oracle中如何获取系统当前时间 select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual; ORACLE里获取一个时间的年.季.月.周.日 ...
- 仿抖音短视频系统源码,获取系统图片
仿抖音短视频系统源码,实现获取系统图片的相关代码如下: 首先开权限 <uses-permission android:name="android.permission.WRITE_EX ...
- windows系统下SNMP协议获取系统内存、CPU实例代码
系统环境:win10 注:win10及以下windows平台,在控制面板,程序中,添加snmp服务功能. 可参照:https://jingyan.baidu.com/article/3d69c5515 ...
- 如何获取系统时间java_java如何获取系统当前时间,java获取当前时间date类型
java如何获取系统当前时间爪哇如何获取系统当前时间,爪哇岛获取系统当前时间的方法:获得当前时间和当前时间前30秒时间,代码为[简单日期格式df=新的简单日期格式(' yyyy-MM-DD hh :M ...
- javascript获取系统时间时区_javascript获取系统当前时间的方法
本文实例讲述了javascript获取系统当前时间的代码.分享给大家供大家参考.具体如下: 运行效果截图如下: 具体代码如下: 获取时间 window.onload = function(){ sho ...
- html自动获取系统时间,js+html获取系统当前时间
本文实例为大家分享了html获取系统当前时间的具体代码,供大家参考,具体内容如下 td { font-size: 12px; color: #ffffff; font-family: verdana, ...
- stm32 Keil编译后查看代码/内存占用空间,Flash/RAM占用大小,Code-Data,RO-Data,RW-Data,ZI-Data是什么含义
1. 查看码Flash/内存RAM占用大小 工程编译后,双击上图中红框位置,会打开 .map文件,包含了各个函数和文件占用的空间大小和地址. 2. Code-Data,RO-Data,RW-Data, ...
- php如何获得系统时间,php如何获取系统时间
PHP获取当前系统时间方法总结 一.获取当前时间戳 方法1:通过time函数 time(); 方法2:通过$_SERVER中的REQUEST_TIME元素 $_SERVER['REQUEST_TIME ...
- java获得系统换行符_java获取系统换行符
检验检疫信息系统 Java 1 范围 本标准规定了检验检疫信息系统采用Java语言编码需遵循的基本内容.基本内容包括文件.文件组 织.排版.注释.声明.命名规范.本标准...... <使用 Ja ...
最新文章
- SOA标准发展混乱 国内业务缺少经验
- python 多继承与super使用详解_继承中的MRO与super详解
- 20145227《信息安全系统设计基础》第一周学习总结
- string转换成enum
- 2017.12.19
- Bailian3717 移动路线【组合】
- Python中的变量、引用、拷贝和作用域
- POJ--3268 Silver Cow Party(最短路)
- 静默安装apk,静默卸载apk
- Atitit eclipse新特性总结3.1---4.4 4.5
- as ssd测试软件得分分析,SSD性能评判:教你读懂利用AS SSD BenchMark测试SSD固态硬盘性能的参数-网络教程与技术
-亦是美网络...
- 软件“生命”系统进化论——软件以负熵为生
- K8S中的pod、services、容器的概念和区别
- mysql biginteger java_java.math.BigInteger cannot be cast to java.lang.Integer以及mysql升级的问题...
- 基于人工智能的滚动轴承PHM方法综述
- migo初始化库存 s4_【S4 MM】S4中继续使用MB系统事务代码
- fpga时序逻辑(三段式状态机模板、rom实现、边沿检测)
- Java基础:Ubuntu20.04下JDK1.8安装+配置
- 中国垃圾分类产业链现状动态及未来发展前景预测报告(2022-2027年)
- GraphPad绘图软件:汇集生物统计、化学统计、以及科技绘图于一身
热门文章
- 计算/感知/认知智能的研究现状
- 一台服务器,启动多个redis
- 移动端项目总结 - DCloud-HBuilder打包
- 漏洞通告 | Atlassian Confluence存在远程代码执行漏洞,悬镜云鲨RASP天然免疫防护...
- 文件服务器文件夹,共享文件夹及权限迁移
- 作业辅导视频 SS2023-HW13:最小相位系统
- 数据结构之树之不同种类篇
- Windows命令查看文件的MD5/SHA1/SHA256
- Git 2.38发布,引入巨型仓库管理工具Scalar
- 数字集成电路设计-1-用一个mux和一个inv实现异或