c++ 获取cpu逻辑核数

2014-11-24 02:27:48 · 作者: · 浏览: 1
公司的服务器是 2个cpu(机箱里面摸得着的真实的),每个cup10核心,20个超线程,逻辑核数40,网上找了很多代码,获取cup逻辑核数,最多的就是
SYSTEM_INFO info;
GetSystemInfo(&info);
int corenum = info.dwNumberOfProcessors;
这个返回的是32,所以是有问题的
自己写的代码
QString cmd = "WMIC CPU Get NumberOfCores,NumberOfLogicalProcessors /Format:List > ./cpucore.txt";
int num=0;
system(cmd.toStdString().c_str());
QFile file("./cpucore.txt");
file.open(QFile::ReadOnly|QFile::Text);
QTextStream stream(&file);
while(!stream.atEnd())
{
QString line = stream.readLine();
if(line.contains("NumberOfLogicalProcessors"))
{
int index = line.indexOf("=");
QString snum;
for(int i=index+1;i
{
snum.append(line.at(i));
}
num+=snum.toInt();
}
}
file.close();
c