我知道sysconf(_SC_NPROCESSORS_ONLN)
可以给出逻辑处理器的数量。但是我怎样才能得到物理处理器的数量呢?
@Havoc P: 离线CPU不会在/proc/cpuinfo中显示。
CPU拓扑结构可以在/sys/devices/system/cpu/cpu*/topology/*中查看。
我认为获取这些信息的最佳方式是使用hwloc:http://www.open-mpi.org/projects/hwloc/。
他们提供了一堆用户工具,让您可以获取系统的CPU拓扑结构,但他们还提供了一个可以从C语言中使用的库:http://www.open-mpi.org/projects/hwloc/doc/v1.1.1/#interface