c++ 获取cpu逻辑核数

公司的服务器是 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

你可能感兴趣的:(c++,语言)