Cpu内存信息查询-代码方式查询并保存

代码中可能常常需要使用Cpu和内存的信息,即用shell命令查询出来的再送到代码的字符串等变量中。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
	char achCmd[128] = {0};
	FILE* pStream = NULL;
	int a;

        //strcpy(achCmd,"cat /proc/meminfo | grep MemTotal | awk -F " " '{print $2}'");
        //system(achCmd);
        //system("cat /proc/meminfo | grep MemTotal > tmp");
	
	//查询操作系统
	if( NULL != (pStream = popen("uname -s", "r")))
	{
	    fgets(achCmd, sizeof(achCmd), pStream);
            printf("os = %s",achCmd);
	}

	//查询cpu类型
	//cat /proc/cpuinfo | grep 'model name' | uniq | awk -F ': ' '{print $2}'
	if( NULL != (pStream = popen("cat /proc/cpuinfo | grep 'model name' | uniq | awk -F ': ' '{print $2}'", "r")))
	{
	    fgets(achCmd, sizeof(achCmd), pStream);
            printf("cpu type = %s",achCmd);
	}
	
	//查询core的个数
	if( NULL != (pStream = popen("cat /proc/cpuinfo | grep 'processor' | wc -l", "r")))
	{
	    fgets(achCmd, sizeof(achCmd), pStream);
            a = atoi(achCmd);
            printf("core num = %d\n",a);
	}
	
	//查询内存大小
	if((pStream = popen("cat /proc/meminfo | grep MemTotal | tr -cd [0-9]","r")) != NULL)
	{
            fgets(achCmd, sizeof(achCmd), pStream);
            printf("memory byte = %s\n",achCmd);
            a = atoi(achCmd)/1024;
            printf("memory = %dM",a);
	}
	pclose(pStream);
	return 0;
}
kdvmt@kdvmt-dell:cany$ ./a.out 
os = Linux
cpu type = Intel(R) Core(TM) i5-8500 CPU @ 3.00GHz
core num = 6
memory byte  = 7959264B
memory = 7772M

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值