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

我知道如何获得一个cpu一个操作系统与壳的位数。

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

但是,我们怎样才能得到一个C程序的位数。 这是一个面试问题,我的解决scheme如下:

int *ptr; printf("%dn",sizeof(ptr)*8);

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

POSIX也提供了C函数。 你可以像shell命令uname一样获得类似的结果:

#include <stdio.h> #include <sys/utsname.h> int main(){ struct utsname buf; uname(&buf); printf("sysname: %snversion: %snmachine: %sn ",buf.sysname,buf.version,buf.machine); return 0; }

在我的机器上输出

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

在Linux上,一个简单的方法是使用uname -m命令来执行popen ,然后解析输出

另一种方法是查看uname命令的源代码(因为它是随时可用的),并直接实现某些东西。

相关文章

本篇内容主要讲解“gitee如何上传代码”,感兴趣的朋友不妨来...
这篇“从gitee上下的代码如何用”文章的知识点大部分人都不太...
这篇文章主要介绍“gitee如何下载仓库里的项目”,在日常操作...
本篇内容主要讲解“怎么在Gitee上更新代码”,感兴趣的朋友不...
本文小编为大家详细介绍“怎么将工程托管到gitee”,内容详细...
这篇文章主要介绍了gitee中图片大小如何调整的相关知识,内容...