-
problema con el modulo free disk.
Hola.
He estado mirando el modulo del free disk, en un principio funciona bien y te devuelve el valor en Mb. hasta aqui todo bien.
El problema que he encontrado es cuando el espacio libre son gigas, entonces te retorna un valor “falso”, en mi caso tengo en la C: 139 Gigas libres y el agente me dice 3,794 Megas, el resto de unidades las hace bien.
Entonces se me ha ocurrido mirar los includes, y la consulta wmi la hace bien.
pandora_wmi.cc
…
Pandora_Wmi::getDiskFreeSpace
…
query = “SELECT Size, FreeSpace FROM Win32_LogicalDisk WHERE DeviceID = “” + disk_id + “””;
…el problema biene cuando:
line: 168 space = Pandora_Strutils::strtoulong (space_str);que llama al conversor.
pandora_strutils.cc
Pandora_Strutils::strtoulong (const string str) {
unsigned long long result;if (! std::sscanf (str.c_str (), “%I64d”, &result)) {
throw Invalid_Conversion ();
}return result;
}que por lo que yo entiendo es un long int, que a mi entender tiene de rango
signed -> −2,147,483,648 to 2,147,483,647
unsigned -> 0 to 4,294,967,295con lo cual un valor de 150,003,126,272 se pasa de largo.
Si me equivoco corregidme, gracias
Saludos
Sorry, there were no replies found.