CPU e memória em C no GNU/Linux

Publicado por euteste da silva (última atualização em 13/06/2012)

[ Hits: 4.441 ]

Download prog1.c




O programa pega informações de CPU e memória do Linux.

  



Esconder código-fonte

#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);
 }


Scripts recomendados

Exibi os números primos de um numero recebido pelo usuário, sem estrutura de repetição

Matrizes esparsas, produto por escalar e produto por um vetor

Lista Duplamente Encadeada em C

Relógio com data e hora

Usando medidas de comprimento


  

Comentários
[1] Comentário enviado por removido em 13/06/2012 - 16:28h

Belo utilitário!

[2] Comentário enviado por danniel-lara em 14/06/2012 - 12:46h

parabéns
muito legal mesmo


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts