C语言获取当前系统的CPU核心数量
本文将介绍C语言在Windows系统和Linux系统下获取CPU核心数量的方法;
Linux系统下获取CPU核心数量
Linux系统下可调用sysconf
函数来获取CPU的核心数量,该函数和使用的参数常量在unistd.h头文件中声明;
sysconf函数原型
long sysconf (int name);
传入参数为:
- _SC_NPROCESSORS_CONF时,返回系统中CPU的核心数量,包括禁止用户使用的核心数量;
- _SC_NPROCESSORS_ONLN时,返回系统中可用的CPU核心数量;
示例代码
#include <stdio.h>
#include <unistd.h>
int main(){
printf("CPU核心数: %d\n", sysconf( _SC_NPROCESSORS_CONF));
printf("可用CPU核心数: %d\n", sysconf(_SC_NPROCESSORS_ONLN));
}
程序输出
CPU核心数: 8 可用CPU核心数: 8
Windows系统下获取CPU核心数量
在Windows系统下,使用SYSTEM_INFO结构体和GetSystemInfo
函数来获取CPU核心数量;需引入windows.h头文件;
GetSystemInfo
函数用于获取当前系统的一些信息,并将信息存放到一个SYSTEM_INFO结构体中;
SYSTEM_INFO结构体定义了dwNumberOfProcessors,表示处理器的数目;
示例代码
#include <stdio.h>
#include "windows.h"
int main(){
SYSTEM_INFO sysInfo;
GetSystemInfo( &sysInfo );
printf("cpu num: %d\n",sysInfo.dwNumberOfProcessors);
}
程序输出
cpu num: 8