http://hi.baidu.com/%C0%CB%C2%FE%B5%C4%D0%A1%D0%AB%D7%D3/blog/item/1a3fef35202d4344251f1430.html
Linux中,sysinfo是用来获取系统相关信息的结构体。
函数声明和原型:
#include<sys/sysinfo.h>intsysinfo(structsysinfo*info);
结构体信息:
在Linux2.3.16中,结构体的信息是(单位是字节):
structsysinfo{
long uptime;
/*启动到现在经过的时间*/
unsignedlongloads[3];
/*1,5,and15minuteloadaverages */
unsignedlongtotalram;/*总的可用的内存大小*/
unsignedlongfreeram;/*还未被使用的内存大小*/
unsignedlongsharedram;/*共享的存储器的大小*/
unsignedlongbufferram;/*缓冲区大小*/
unsignedlongtotalswap;/*交换区大小*/
unsignedlongfreeswap;/*还可用的交换区大小*/
unsignedshortprocs;/*当前进程数目*/
char _f[22];/*64字节的补丁结构*/
};
在Linux2.3.23(i386),2.3.48(allarchitectures)中,结构体的信息是(单位是mem_unit字节):
structsysinfo{
long uptime;/*启动到现在经过的时间*/
unsignedlongloads[3];
/*1,5,and15minuteloadaverages */
unsignedlongtotalram;/*总的可用的内存大小*/
unsignedlongfreeram;/*还未被使用的内存大小*/
unsignedlongsharedram;/*共享的存储器的大小*/
unsignedlongbufferram;/*共享的存储器的大小*/
unsignedlongtotalswap;/*交换区大小*/
unsignedlongfreeswap;/*还可用的交换区大小*/
unsignedshortprocs;/*当前进程数目*/
unsignedlongtotalhigh;/*总的高内存大小*/
unsignedlongfreehigh;/*可用的高内存大小*/
unsignedintmem_unit;/*以字节为单位的内存大小*/
char_f[20-2*sizeof(long)-sizeof(int)];
/*libc5的补丁
};
返回值:
操作成功返回0,错误返回-1;
样例:
#include<stdio.h>
#include<linux/unistd.h>/*包含调用_syscallX宏等相关信息*/
#include<linux/kernel.h>/*包含sysinfo结构体信息*/
_syscall1(int,sysinfo,structsysinfo*,info);
//usingnamespacestd;
intmain(intargc,char*agrv[])
{
structsysinfos_info;
interror;
error=sysinfo(&s_info);
printf("\n\ncodeerror=%d\n",error);
printf("Uptime=%ds\nLoad:1min%d/5min%d/15min%d\n"
"RAM:total%d/free%d/shared%d\n"
"Memoryinbuffers=%d\nSwap:total%d/free%d\n"
"Numberofprocesses=%d\n",
s_info.uptime,s_info.loads[0],
s_info.loads[1],s_info.loads[2],
s_info.totalram,s_info.freeram,
s_info.totalswap,s_info.freeswap,
s_info.procs );
return0;
}
/*输出结果:
/home/chenhd/future>./Sysinfo_1
codeerror=0
Uptime=154s
Load:1min22976/5min13888/15min5408
RAM:total128307200/free55656448/shared263168000
Memoryinbuffers=263168000
Swap:total50/free1073821804
Numberofprocesses=1073823352
/home/chenhd/future>
*/
// an example
int main()
{
FILE *fp;
char str[81];
memset(str,0,81);
fp=popen("cat /proc/meminfo | grep MemTotal:|sed -e 's/.*:[^0-9]//'","r");
if(fp < 0)
{
printf("无法读取ram信息\n");
exit(1);
}
fgets(str,80,fp);
fclose(fp);
if (cpuinfo != NULL)
{
strncpy(cpuinfo,str,80);
}
#include <linux/unistd.h> /* 包含调用 _syscallX 宏等相关信息*/
#include <linux/kernel.h> /* 包含sysinfo结构体信息*/
#include <sys/sysinfo.h>
struct sysinfo s_info;
int error;
error = sysinfo(&s_info);
gulong spd=atoi(str);
printf("您ram是%lu kb %s %lu\n",spd, str, s_info.totalram);
return spd;
}
分享到:
相关推荐
适用于无法启动程序,因为计算机中丢失api-ms-win-core-sysinfo-l1-2-0.dll的情况
api-ms-win-core-sysinfo-l1-1-0.dll
linux下c/c++ 实现cpu使用率查询,内存使用率查询,当个程序使用查询 主要应用/proc/stat /proc/meminfo /proc/pid/stat /proc/pid/status 等文件中的内容进行计算
SysInfo-Linux是一个php脚本,用于查询基于Linux的系统以获取对运行网站至关重要的系统,httpd和应用程序信息。 使用html模板进行输出,可以轻松地在任何HTML编辑器中对其进行编辑以满足您的需求。
util-linux-ng-2.17源码(含fdisk) Here is a list of all documented files with brief descriptions: util-linux-ng-2.17.2/disk-utils/blockdev.c [code] util-linux-ng-2.17.2/disk-utils/cramfs.h [code] ...
Package sysinfo 是一个提供 Linux 操作系统/内核/硬件系统信息的 Go 库。它完全独立,不依赖主机系统,不执行外部程序,甚至不导入其他 Go 库。...更多详情、使用方法,请下载后阅读README.md文件
sysinfo-snapshot命令生成压缩HTML文件,其中包含用于维护和故障排除的详细的硬件和软件信息,并带有简单的导航索引。 它也可以用作CGI脚本来按需生成报告。
sysinfo 使用 Python Flask 框架和 psutil 开发的一个中文版 Linux 服务器信息查看应用,可查看的信息包括系统、CPU、内存、硬盘、进程、网络、登录用户等,同时可查看并导出部分数据的图表。, Linux系统具有高效的...
离线安装包,亲测可用
系统信息通过golang获取linux系统信息(cpu,内存,磁盘等)
go-sysinfo go-sysinfo是用于收集系统信息的库。 这包括有关主机和主机上运行的进程的信息。 可用功能因“供应商”为操作系统实施的功能而异。 在运行时,您检查返回的Host或Process是否实现了其他接口。 例如: ...
商信息: Inspur NF5180M5, Serial NO: ...内存 : 256GB = 32GB X 8 (Micron DDR4 2666 MHz) 硬盘 : 1TB = 1.00TB X 1 (HGST HUS722T1TAL) 网卡 : Mellanox Technologies MT27800 Family [ConnectX-5] ..
用MASM32编写的Windows系统软件、硬件、网络信息收集程序,可用于收集单位里办公电脑的软件(Windows操作系统版本、系统补丁安装情况、杀毒软件、防火墙软件、反间谍软件等)、硬件(CPU、内存m容量、硬盘容量和...
192.168.0.1:54876 [xpl-stat/sysinfo.basic: bnz-sysinfo.srv -> * srv/platform/linux] 192.168.0.1:54876 [xpl-stat/sysinfo.basic: bnz-sysinfo.srv -> * srv/cpuCount/2] 192.168.0.1:54876 [xpl-stat/sysinfo...
api-ms-win-core-synch-l1-2-0.dll
sysinfo 使用 Python Flask 框架和 psutil 开发的一个中文版 Linux 服务器信息查看应用,可查看的信息包括系统、CPU、内存、硬盘、进程、网络、登录用户等,同时可查看并导出部分数据的图表。 Python使用技巧,实战...
本脚本结合了 Ryan 的 Progress 和 ZiGma 的 SysInfo Pro,提供 系统信息模块 和 进度 模块的切换 声明 本脚本 Progress 部分修改自 Ryan 的 Progress 脚本,SysInfo 部分修改自 ZiGma 的 SysInfo Pro 脚本 说明 ...
Linux&UNIX;系统编程手册源码副本
系统信息数据收集器(SysInfo-DC)是用于从HP-UX操作系统以及某些HP硬件和软件收集信息的工具。 支持工程师可以使用SysInfo-DC获得系统配置并排除故障。