C++ Prozessorinformationen rausfinden
-
Moin moin,
weiß jemand wie ich mittels C++ dem Prozessor bestimmte Informationen "entlocken" kann? Beispielsweise Grundlegende Dinge wie die MHz Zahl die Anzahl der Kerne usw. Aber auch die Auslastung, bestenfalls beider Kerne einzeln, möglicherweise auch die Temperatur und dergleichen.
Ich will spaßeshalber mal ein Programm schreiben in dem mir das alles angezeigt wird. Größtenteils soll es in C++ geschrieben werden, aber ich habe in vielen Foren gelesen das man an manche Daten nur über Assembler ran kommt.
Ich würde mich also freuen wenn Irgendjemand Ahnung davon hat mir ein paar Ansätze geben kann, oder vllt sogar ein paar Links für mich hat!
MfG iNv151673
-
Dazu musst du die API deines Betriebssystems befragen. Das wäre?
-
Hmmm
Unter Linux befinden sich die Prozessor information im proc/cpuinfo
Verzeichnis.Unter Windows fand ich das hier :
http://msdn.microsoft.com/en-us/library/hskdteyh(v=vs.80).aspxGrüsse
-
Oh tschuldigung ^^
Unter Windows soll das ganze laufen.
-
gibts nicht sowas wie cpuid
-
Danke ich denke das hilft mir schon etwas weiter!
Aber damit erfahre ich ja nichts über die Auslastung oder die Temperatur ..
-
stimmt
-
für linux gäbs noch http://linux.die.net/man/3/libsensors bzw. ps aux in der shell. mit windows kenn ich mich nicht aus
-
Also vielleicht stell ich mich grad bloß ein bisschen dämlich an, aber ich hab nun bei Wikipedia ein paar Bespielcodes gefunden allerdings kann ich mit der Ausgabe nicht viel anfangen...
#include <iostream> int main() { int a, b; for (a = 0; a < 5; a++) { __asm ( "mov %1, %%eax; " // a into eax "cpuid;" "mov %%eax, %0;" // eax into b :"=r"(b) // output :"r"(a) // input :"%eax","%ebx","%ecx","%edx" // clobbered register ); std::cout << "The code " << a << " gives " << b << std::endl; } return 0; }
Ausgabe:
The Code 0 gives 10 The Code 1 gives 67190 The Code 2 gives 95465729 The Code 3 gives 0 The Code 4 gives 0
Kann mir da mal jemand flink auf die Beine helfen?
-
nimm lieber ne library z.b. http://libcpuid.sourceforge.net/ hab sie aber selbst nicht gestestet
-
getestet...
-