CPU e memória em C no GNU/Linux
Publicado por euteste da silva (última atualização em 13/06/2012)
[ Hits: 4.763 ]
O programa pega informações de CPU e memória do Linux.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main() {
FILE *fp;
char str[31], *pt, *pFim;
float f1, f2, f3;
unsigned int memF, memFlivre, memFocupada;
fp = fopen("/proc/cpuinfo","r");
if(fp == NULL){
fprintf(stderr,"Error na abertura de arquivo da cpu");
exit(-1);
}
printf("\n\nInformacoes de CPU da maquina\n");
while(fgets(str,30,fp)){
if((strncmp(str,"processor",8)==0) || \
(strncmp(str,"vendor_id",8)==0) || \
(strncmp(str,"cpu MHz",6)==0)) {
printf("%s",str);
}
}
fclose(fp);
fp = fopen("/proc/loadavg","r");
if(fp == NULL){
fprintf(stderr,"Error na abertura de arquivo do load");
exit(-1);
}
printf("\nLoad da CPU");
while(fgets(str,30,fp)){
sscanf(str,"%f %f %f",&f1,&f2,&f3);
printf("\n%.2f %.2f %.2f\n",f1,f2,f3);
}
fclose(fp);
fp = fopen("/proc/meminfo","r");
if(fp == NULL){
fprintf(stderr,"Error ao acessar arquivo memoria");
exit(-1);
}
printf("\nMemoria da maquina\n");
while(fgets(str,30,fp)){
if(strncmp(str,"MemTotal:",9)==0) {
pt=strtok(str," ");
pt=strtok(NULL," ");
memF=strtol(pt,&pFim,10);
printf("Fisica: %d [kb]\n",memF);
}
if(strncmp(str,"MemFree:",8)==0) {
pt=strtok(str," ");
pt=strtok(NULL," ");
memFlivre=strtol(pt,&pFim,10);
printf("Fisica livre: %d [kb]\n",memFlivre);
}
}
printf("Ocupaca: %d [kb]\n", memF-memFlivre);
fclose(fp);
}
Busca do código do produto-Vetores----
Pra quem gosta de RPG. Um sistema de lutas.
Imprime a soma dos numeros positivos e negativos
LazyDocker – Interface de Usuário em Tempo Real para o Docker
Instalando COSMIC no Linux Mint
Turbinando o Linux Mint: o poder das Nemo Actions
Inteligência Artificial no desenvolvimento de software: quando começar a usar?
Colocando hotcorner no COSMIC para exibir "workspaces"
Usando o Dolphin para checar hashes de arquivos
Contorno de BUG do "color picker" para COSMIC Desktop









