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

原创内容,如需转载,请注明出处;

本文地址: https://www.perfcode.com/p/get-the-number-of-cpu-cores.html

分类: 计算机技术
推荐阅读:
编程中foo、bar、baz的含义 在编程中,foo、bar和baz通常被用作示例变量名。它们是一种惯用的命名习惯,通常被用于示例代码或临时代码片段中,表示没有特定含义的变量名或函数名。
C语言strncpy()函数:复制字符串中的n个字符 strncpy()是C语言标准库中的一个字符串复制函数,用于将一个字符串的n个字符复制到另一个字符串中;
Python hasattr()函数 hasattr() 是 Python 内置函数之一,用于检查一个对象是否具有指定的属性或方法。
Golang Web编程入门示例 Go语言内置了Web服务;net/http 标准库中包含有关HTTP协议的所有功能。这其中包括HTTP客户端和HTTP服务端,在本文中,你将发现使用GO创建一个可在浏览器中查看的WEB服务程序非常简单。
Python next()函数 next() 是 Python 的内置函数之一,用于获取迭代器中的下一个元素。
C语言实现斐波那契数列 对于斐波那契数列,其下一个数字是前两个数字的和,例如:0、1、1、2、3、5、8、13、21等等;斐波那契数列的前两个数为0和1;使用C语言实现斐波那契数列的方法有两种,递归和无递归;