Medicion de recursos con C++

Necesito saber la librería y/o las funciones que tengo que usar para monitorizar recursos de un sistema. En concreto, necesito calcular:
- Porcentaje de memoria libre del sistema
- Porcentaje de discos duro libre en el sistema
- Porcentaje de ocupación de la CPU

1 Respuesta

Respuesta
1
Necesito saber con que compilador, es decir, Borland C++, C++ Builder o cual?, también necesito si lo quieres para windows o ms-¿Dos o linux?
Disculpa por no haber especificado más. En principio, lo necesito para trabajar con Visual C++ sobre Windows NT 4.
Existen funciones en el API de windows como GlobalMemoryStatus() y GetDiskFreeSpaceEx() investiga un poco más sobre ellas para entenderles mejor.
Acerca del uso del CPU, pues es un tema complicado pero puedes buscar info en : www.deja.com
El siguiente programa me funciona en C++ Builder así que no se si te vaya a funcionar sin modificación en Visual C++.
Suerte.
int main(int argc, char* argv[])
{
char lpDirectoryName[100] = "c:\\"; // cadena de caracteres de interes
PULARGE_INTEGER lpFreeBytesAvailableToCaller; // numero de bytes libres para el usuario actual
PULARGE_INTEGER lpTotalNumberOfBytes; // numero de bytes totales en el disco
PULARGE_INTEGER lpTotalNumberOfFreeBytes; // numero de bytes totales libres
GetDiskFreeSpaceEx(lpDirectoryName, &lpFreeBytesAvailableToCaller, &lpTotalNumberOfBytes, &lpTotalNumberOfFreeBytes);
double PorcentajeLibreHD = (double)lpTotalNumberOfFreeBytes.QuadPart / lpTotalNumberOfBytes.QuadPart;
printf("Porcentaje disco duro libre: %.2lf%\n", PorcentajeLibreHD * 100);
MEMORYSTATUS ms;
ms.dwLength=sizeof(MEMORYSTATUS);
//obtenemos la info
GlobalMemoryStatus(&ms);
//aqui se obtiene la memoria libre
double PorcentajeLibreMem = (double)ms.dwAvailPhys / ms.dwTotalPhys;
printf("Porcentaje memoria libre: %.2lf%\n", PorcentajeLibreMem * 100);
return 0;
}

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas