Linux中是否有API可以获取可用的CPU数量? 我的意思是,不使用/proc/cpuinfo或任何其他sys-node文件.

我已经找到了这个使用Schedul.h的实现:

int GetCPUCount()
{
 cpu_set_t cs;
 CPU_ZERO(&cs);
 sched_getaffinity(0, sizeof(cs), &cs);

 int count = 0;
 for (int i = 0; i < 8; i++)
 {
  if (CPU_ISSET(i, &cs))
   count++;
 }
 return count;
}

但是,难道没有更高层次的公共库吗?

推荐答案

#include <stdio.h>
#include <sys/sysinfo.h>

int main(int argc, char *argv[])
{
    printf("This system has %d processors configured and "
        "%d processors available.\n",
        get_nprocs_conf(), get_nprocs());
    return 0;
}

https://linux.die.net/man/3/get_nprocs

C++相关问答推荐

为什么listen()(在调用accept()之前)足以让应用程序完成3次握手?

想了解 struct 指针和空指针转换

标准的C17标准是用括号将参数包装在函数声明中吗

为什么双重打印与C中的float具有不同的大小时具有相同的值?

在 struct 中强制转换空指针

Cairo STM32MP1 cairo_Surface_WRITE_TO_PNG始终返回CAROLIO_STATUS_WRITE_ERROR

使用nmake for程序比Hello World稍微复杂一些

如何使用FSeek和文件流指针在C中查找文件的前一个元素和前一个减go 一个元素

为什么realloc函数在此代码中修改变量?

理解bzip2的BZ2_解压缩函数中的状态重新分配

如何在双向表中实现线程安全,每个条目仅使用4位,同时避免任何全局锁?

C++中PUTS函数的返回值

UpDown控制与预期相反

如何在Rust中处理C的longjmp情况?

memcmp 是否保证按顺序比较字节?

如何使用 VLA 语法使用 const 指针声明函数

C Makefile - 如何避免重复提及文件名

在C中定义函数指针?

10 个字节对于这个 C 程序返回后跳行的能力有什么意义

Zig 中 C 的system函数的惯用替代方案