我知道如何使用 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/