gpt4 book ai didi

c - 我怎么知道 C 中 cpu/os 的位数

转载 作者:太空狗 更新时间:2023-10-29 12:18:08 24 4
gpt4 key购买 nike

我知道如何使用 shell 获取 cpu 或操作系统的位数。

cat /proc/cpuinfo | grep lm #-> get bit count of a cpu
uname -a #-> get bit count of an operation system

但是,我们如何才能在 C 程序中获得它们的位数。这是一个面试问题,我的解决方案如下:

int *ptr;
printf("%d\n", sizeof(ptr)*8);

但是面试官说那是错误的。那么,正确答案是什么?

最佳答案

POSIX 提供了一个 C 函数 uname以及。您可以获得类似于 shell 命令 uname 的类似结果:

#include <stdio.h>
#include <sys/utsname.h>

int main(){
struct utsname buf;
uname(&buf);
printf("sysname: %s\nversion: %s\nmachine: %s\n ", buf.sysname, buf.version, buf.machine);
return 0;
}

我机器上的输出:

sysname: Linux
version: #1 SMP Tue Oct 2 22:01:37 EDT 2012
machine: i686

关于c - 我怎么知道 C 中 cpu/os 的位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19418681/

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