【发布时间】:2013-06-09 22:11:16
【问题描述】:
我在一次采访中被问到这个问题,但我无法给出答案。
这个想法是只使用 C 标准库编写一个程序,并找出盒子有多少 CPU 内核。该解决方案需要独立于平台,并且不允许使用外部库或系统调用。
有人有这方面的经验吗?谢谢!
【问题讨论】:
-
C 不知道 CPU 是什么。
-
标准库中没有这样的功能。所以我猜你的面试问题的答案应该是“那是不可能的”。
-
其他 cmets 是正确的,他们不确定如何确定这一点。但是他们可能一直在寻找一个程序,您可以在其中生成线程并查看有多少线程同时运行。这在闲置的机器上是可行的。但它很不稳定。
-
是的,我并不是说它是核心数量或确切答案。我要说的是,说 C++ 没有这个概念是不正确的。
-
@DeadMG:我会同意的。然而,就我所看到的 C11 标准而言,没有 C++ 所具有的
std::thread::hardware_concurrency的 C 等价物,我认为这是 OP 的面试官正在寻找的。span>