3
respostas

Biblioteca Analítica no C

Gostaria de saber se tem como de alguma maneira no C, termos a informação em porcentagem do processador, temperatura dele, quantidade de armazenamento de disco essas coisas para analisar o computador sabe não estou achando nada.

3 respostas

Não há biblioteca padrão da linguagem para esta tarefa.

Seria preciso usar ferramentas do SO, o que torna o código não portável. No linux, basta ler o arquivo :

/sys/class/thermal/thermal_zone0/temp

Não sei se há uma API que abstraia esses aspectos nativos em todas as plataformas. Mas caso não exista, uma vez que se tenha uma ferramenta de leitura via terminal para a mesma, não seria difícil criá-la. Basta criar métodos de parsing com uma assinatura comum para extrair os dados de interesse.

Cara, por exemplo.

no C#

PerformanceCounter processor = new PerformanceCunter("%performance", "Processor", "...");

Esse código no c# pega o carregamento da cpu sabe eu queria saber se tem como fazer a mesma coisa na linguagem C, pois se da no c# com certeza da no C só não sei como queria aprender e não estou achando.

Lembre-se que tanto o C# quanto o Java rodam sobre máquinas virtuais, as quais se encarregam de obter esses dados do sistema hospedeiro, fornecendo uma interface unificada para os programas que rodam sobre elas.

Não há solução portável dentro do padrão C para esta tarefa. Por que? Porque é preciso fazer uso de kernel drives, o que entra no domínio do SO. A linguagem C foi concebida para escrever SOs, não para prover recursos que o SO deve prover.

Se quiseres fazer isto terás de usar ferramentas plataforma-dependentes. Sem dúvida é possível fazer o que estás querendo, e inclusive te mostrei um exemplo de como fazê-lo no Linux.

No Windows, para C++, podes achar mais informações em:

https://msdn.microsoft.com/en-us/library/Aa394493

Não uso Windows. Nunca usei. Nunca vou usar. Portanto, infelizmente, não posso ajudar muito.