#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
int
zgetcpuinfo(int *cores,int *frequency)
{
FILE *fp;
char *pbuffer=NULL;
size_t buflen;
int ret;
char tmpBuffer[32];
int i,j;
fp = fopen("/proc/cpuinfo", "r");
if (NULL == fp)
{
printf("open /proc/cpuinfo failed!\n");
return -1;
}
/**
* loop to read buffer.
*/
while (getline(&pbuffer, &buflen, fp)!=-1)
{
//printf("%s\n", pbuffer);
if(strstr(pbuffer,"cpu cores")!=NULL)
{
//printf("cores:%s\n", pbuffer);
memset(tmpBuffer,0,sizeof(tmpBuffer));
for(i=0,j=0;i<strlen(pbuffer);i++)
{
if(isdigit(pbuffer[i]))
{
tmpBuffer[j++]=pbuffer[i];
}
}
//printf("cores:%s\n",tmpBuffer);
*cores=atoi(tmpBuffer);
}
if(strstr(pbuffer,"cpu MHz")!=NULL)
{
//printf("cpu MHz:%s\n", pbuffer);
memset(tmpBuffer,0,sizeof(tmpBuffer));
for(i=0,j=0;i<strlen(pbuffer);i++)
{
if(isdigit(pbuffer[i]))
{
tmpBuffer[j++]=pbuffer[i];
}
}
//printf("Free:%s\n",tmpBuffer);
*frequency=atoi(tmpBuffer);
}
}
if (pbuffer!=NULL)
{
free(pbuffer);
pbuffer = NULL;
}
fclose(fp);
return 0;
}
int
main(void)
{
int cores,frequency;
if(zgetcpuinfo(&cores,&frequency)<0)
{
printf("get cpuinfo failed!\n");
}else{
printf("cores:%d ,Frequency:%d \n",cores,frequency);
}
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
int
zgetmeminfo(int *memTotal,int *memFree)
{
FILE *fp;
char *pbuffer=NULL;
size_t buflen;
int ret;
char tmpBuffer[32];
int i,j;
fp = fopen("/proc/meminfo", "r");
if (NULL == fp)
{
printf("open /proc/meminfo failed!\n");
return -1;
}
/**
* loop to read buffer.
*/
while (getline(&pbuffer, &buflen, fp)!=-1)
{
//printf("%s\n", pbuffer);
if(strstr(pbuffer,"MemTotal")!=NULL)
{
printf("MemTotal:%s\n", pbuffer);
memset(tmpBuffer,0,sizeof(tmpBuffer));
for(i=0,j=0;i<strlen(pbuffer);i++)
{
if(isdigit(pbuffer[i]))
{
tmpBuffer[j++]=pbuffer[i];
}
}
printf("Total:%s\n",tmpBuffer);
*memTotal=atoi(tmpBuffer);
}
if(strstr(pbuffer,"MemFree")!=NULL)
{
printf("MemFree:%s\n", pbuffer);
memset(tmpBuffer,0,sizeof(tmpBuffer));
for(i=0,j=0;i<strlen(pbuffer);i++)
{
if(isdigit(pbuffer[i]))
{
tmpBuffer[j++]=pbuffer[i];
}
}
printf("Free:%s\n",tmpBuffer);
*memFree=atoi(tmpBuffer);
}
}
if (pbuffer!=NULL)
{
free(pbuffer);
pbuffer = NULL;
}
fclose(fp);
return 0;
}
int
main(void)
{
int memTotal,memFree;
if(zgetmeminfo(&memTotal,&memFree)<0)
{
printf("get meminfo failed!\n");
}else{
printf("Total:%d kb,Free:%d kb\n",memTotal,memFree);
}
return 0;
}