[C con Clase] Caracteristicas CPU En C

Steven Davidson srd4121 en njit.edu
Lun Oct 31 16:02:40 CET 2011


Hola Jekferson,

2011/10/28 Jekferson Diaz <jekferson_diaz en hotmail.com>:
> Buenas Amigo , el siguiente es para pedirles una mano con un ejercicio que debo realizar en el lenguaje c.
>
> el ejercicio es : realizar un programa en c que me arroje las caracteristicas del CPU en donde estoy trabajando como por ejemplo:
>
> El Nombre Del CPU
> Los GHz
> La Temperatura
>
> Entre otros datos que pudiese extraer..
>
> de verdad estaría muy agradecido si me ayudaran !!
>

Para lo que pides, deberás usar bibliotecas no estándares que
seguramente implique que dependerán de la plataforma que uses.

Bajo MS-Windows, puedes usar varias funciones del API para averiguar
diferente tipo de información del procesador. Por ejemplo,

- IsProcessorFeaturePresent() para saber si ciertas prestaciones están
presentes y disponibles por parte del procesador, como pueden ser MMX,
3DNOW, SSE (1, 2, y 3), y algunas más.

- GetSystemInfo() para obtener información del sistema al rellenar una
estructura de tipo 'SYSTEM_INFO'. En tu caso, te interesa los
miembros: 'wProcessorArchitecture' y 'wProcessorRevision'. También te
puede servir la información en los miembros 'dwActiveProcessorMask' y
'dwNumberOfProcessors', aunque para éste último se recomienda invocar
'GetLogicalProcessorInformation()' o incluso
'GetLogicalProcessorInformationEx()'.

También existe otra forma de conseguir información a través de la WMI
(Instrumentación de la Gestión de Windows). Sin embargo, requieres
usar algunas funciones de COM.

La otra manera es simplemente acceder el registro de MS-Windows. En tu
caso, seguramente te interesará consultar la información en:
"HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor".
Bajo esta "ruta", existen varias claves enumeradas a partir de 0
(cero) según la cantidad de procesadores presentes. En cada clave,
tenemos varios campos. Creo que te interesa la siguiente información:

Nombre de cada Campo	Tipo		Descripción
------------------------------------------------------------------------------------------------------------------------------------
~MHz				DWORD	Velocidad en MHz
FeatureSet 			DWORD	Banderines de bits para las prestaciones disponibles
Identifier 				CADENA	Contiene la familia, modelo, and versión (stepping)
ProcessorNameString 	CADENA	Nombre completo del procesador
VendorIdentifier 			CADENA	Nombre del vendedor

En cuanto a la temperatura, esto no siempre está disponible a través
de estas API's, ya que depende del proveedor del hardware comunicarse
con el sistema operativo o no al igual que la manera de tal
comunicación.


Espero que todo esto te sirva.

Steven




Más información sobre la lista de distribución Cconclase