如何使用 C 获取 Linux 中的 CPU 数量?

新手上路,请多包涵

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

我使用 sched.h 找到了这个实现:

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

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

但是,使用通用库没有更高层次的东西吗?

原文由 Treviño 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答
#include <unistd.h>
long number_of_processors = sysconf(_SC_NPROCESSORS_ONLN);

原文由 chrisaycock 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题