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

标签 c linux multithreading cpu processor

是否有 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;
}

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

最佳答案

#include <unistd.h>
long number_of_processors = sysconf(_SC_NPROCESSORS_ONLN);

关于c - 如何使用 C 获取 Linux 中的 CPU 数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4586405/

相关文章:

linux - 如何知道每个 CPU 和内核的可用数量?

C# 如何跨不同用户保存进程

c - 如何从字符串初始化 char 数组

c - 在不引用外部结构的情况下在嵌套结构中声明内部结构变量

python - Python Django 的多线程

java - 线程自动换入换出,无需任何让出或 sleep

c - 多线程 random_r 比单线程版本慢

c - 如何从邻接矩阵构建邻接表?

linux - 使用部分名称搜索用户

linux - crontab 中的 cron 作业不工作