如何使用C语言在Linux中获取CPU数量?

12 浏览
0 Comments

如何使用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;
}

但是,难道没有使用常见库更高级别的东西吗?

admin 更改状态以发布 2023年5月22日
0
0 Comments

#include 
#include 
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

(提示:翻译时需要注意确保语句通顺,字面翻译可能不够准确)

0
0 Comments
#include 
long number_of_processors = sysconf(_SC_NPROCESSORS_ONLN);

(翻译:123)

0