gpt4 book ai didi

c - 在运行时 linux 确定 cpu 体系结构?

转载 作者:行者123 更新时间:2023-12-04 13:06:40 25 4
gpt4 key购买 nike

我想在 Linux 环境中的运行时检测 CPU 架构,我查看了 getauxval(AT_PLATFORM) 但遗憾的是它不可移植,因为它相对较新。是否有 getauxval(AT_PLATFORM) 的替代方案?我可以解析 /proc/cpuinfo 但认为可能有更简单的方法。我正在尝试获得类似于 uname -m 的输出。

最佳答案

I'm trying to get output similar to uname -m.

为什么不看看 uname 是怎么做的呢?运行 apt source coreutils 并在 src/uname.c 中:

...
while ((c = getopt_long (argc, argv, "asnrvmpio",
uname_long_options, NULL)) != -1)
...

case 'm':
toprint |= PRINT_MACHINE;

if (uname (&name) == -1)
...
if (toprint & PRINT_MACHINE)
print_element (name.machine);

(注意 uname 函数的用法)。


uname 是由 POSIX 定义并包装在 glibc 中的系统调用:

#include <sys/utsname.h>
int uname(struct utsname *buf);

并将机器硬件标识符存储在buf->machine中,这是uname -m打印的内容。

顺便说一句 - 在 lib/uname.c 中,您可以看到 coreutils 为 Windows 系统(不支持 >uname 系统调用)。此实现使用 GetVersionExGetSystemInfo WinAPI,它们提供类似的功能。

关于c - 在运行时 linux 确定 cpu 体系结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69071654/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com