[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