【问题标题】:Getting the number of CPU cores using only C standard library? [closed]仅使用 C 标准库获取 CPU 内核数? [关闭]
【发布时间】:2013-06-09 22:11:16
【问题描述】:

我在一次采访中被问到这个问题,但我无法给出答案。

这个想法是只使用 C 标准库编写一个程序,并找出盒子有多少 CPU 内核。该解决方案需要独立于平台,并且不允许使用外部库或系统调用。

有人有这方面的经验吗?谢谢!

【问题讨论】:

  • C 不知道 CPU 是什么。
  • 标准库中没有这样的功能。所以我猜你的面试问题的答案应该是“那是不可能的”。
  • 其他 cmets 是正确的,他们不确定如何确定这一点。但是他们可能一直在寻找一个程序,您可以在其中生成线程并查看有多少线程同时运行。这在闲置的机器上是可行的。但它很不稳定。
  • 是的,我并不是说它是核心数量或确切答案。我要说的是,说 C++ 没有这个概念是不正确的。
  • @DeadMG:我会同意的。然而,就我所看到的 C11 标准而言,没有 C++ 所具有的 std::thread::hardware_concurrency 的 C 等价物,我认为这是 OP 的面试官正在寻找的。​​span>

标签: c cpu multicore core


【解决方案1】:

感谢所有参与的人。我认为现在答案似乎是“没有可靠的方法来做到这一点”。大家讨论得很好!

【讨论】:

    猜你喜欢
    • 2013-06-20
    • 1970-01-01
    • 2011-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-01
    相关资源
    最近更新 更多