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

分类: 计算机技术
推荐阅读:
Python complex()函数 在Python中,complex()函数用于创建一个复数对象,它可以接受两个参数,表示复数的实部和虚部,也可以只传入一个参数,此时表示复数的实部为该参数,虚部为0。
Kali系统和虚拟机镜像的默认账号密码 通常,Kali的默认账号密码为 root/toor,但虚拟机镜像默认的账号密码却不一样,通常为 kali/kali;
Rust serde详细教程 当你需要在 Rust 代码中序列化和反序列化数据时,serde 库是一个强大而灵活的工具;它支持多种数据格式,并且可以轻松地将 Rust 数据结构转换为这些格式的文本或二进制表示。
Golang多个返回值有什么作用 在 Go 语言中,函数可以返回多个值,这是一项非常实用的特性,其作用如下:
Python使用webbrowser模块来实现弹出一个网页 如果你希望在别人运行你的程序时弹出一个指向自己网站的页面,你可以通过以下代码来实现:
Linux系统下正确清空日志文件的方法 在Linux系统下,你不应该直接删除日志文件来实现清除日志内容,因为那样可能会造成日志无法继续产生的问题;