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

4

我知道sysconf(_SC_NPROCESSORS_ONLN)可以给出逻辑处理器的数量。但是我怎样才能得到物理处理器的数量呢?

4个回答

3

@Havoc P: 离线CPU不会在/proc/cpuinfo中显示。

CPU拓扑结构可以在/sys/devices/system/cpu/cpu*/topology/*中查看。


1
你可以解析 /proc/cpuinfo 并计算不同的 "physical id:" 行数。这有点烦人,但我不知道是否有更好的选择。如果你正在使用 GLib 或另一个支持正则表达式的库,那么会更容易一些。或者,如果你感觉真的很 hacky,你可以使用 popen() 执行命令行来完成它。示例命令行在:http://www.brandonhutchinson.com/Understanding_proc_cpuinfo.html

POSIX正则表达式支持(BRE和ERE)是任何POSIX系统的标准库的一部分,包括Linux。不需要glib。 - R.. GitHub STOP HELPING ICE

1

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接