C/C++获取CPU核数

最近开始做服务器,要求获取当前的CPU核数,就做了个Demo,获取CPU核数。

系统环境:ubuntu16.04

CPU信息:Intel® Core™ i5-7200U CPU @ 2.50GHz × 4

代码如下(跨平台):

#include 
#if WIN32
#include "windows.h"
#else
#include "unistd.h"
#endif

int main()
{
#if WIN32
    SYSTEM_INFO sysInfo;
    GetSystemInfo(&sysInfo);
    int allCPUNum_    = sysInfo.dwNumberOfProcessors;
    printf("all    CPU Num:%d\n",allCPUNum_);
#else //linux
    //获取当前系统的所有CPU核数,包含禁用的
    int allCPUNum_    = sysconf(_SC_NPROCESSORS_CONF);
    //获取当前系统的可用CPU核数
    int enableCPUNum_ = sysconf(_SC_NPROCESSORS_ONLN);
    printf("all    CPU Num:%d\n",allCPUNum_);
    printf("enable CPU Num:%d\n",enableCPUNum_);
#endif
    return 0;
}

程序运行如下:

Starting /home/tck/learn/CPU_Num/build-CPU_Num-unknown-Debug/CPU_Num...
all    CPU Num:4
enable CPU Num:4
/home/tck/learn/CPU_Num/build-CPU_Num-unknown-Debug/CPU_Num exited with code 0

结尾:

只为记录,只为分享! 愿所写能对你有所帮助。不忘记点个赞,谢谢~

你可能感兴趣的:(Linux,C++)