Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1776097
  • 博文数量: 198
  • 博客积分: 4088
  • 博客等级: 上校
  • 技术积分: 2391
  • 用 户 组: 普通用户
  • 注册时间: 2011-05-15 16:29
个人简介

游戏开发,系统架构; 博客迁移到:http://www.jianshu.com/u/3ac0504b3b8c

文章分类

全部博文(198)

文章存档

2017年(1)

2016年(12)

2015年(1)

2014年(3)

2013年(13)

2012年(18)

2011年(150)

分类: LINUX

2011-08-31 09:53:11

在 linux下可以通过查看 cat /proc/cpuinfo查看CPU的相关信息,但是在linux下C编程需要使用汇编语言来实现,因为C语言中没有实现查看CPU信息的函数,一般实现如下:

 

(C中运行汇编用 __asm__等)

#include
#include

static inline void
get_cpuid(unsigned int i, unsigned int * buf)
{
   unsigned int eax,ebx,ecx,edx;
   __asm__ (
    "cpuid"
    :"=a"(eax),"=b"(ebx),"=c"(ecx),"=d"(edx):"a"(i));
    buf[0]=eax;
    buf[1]=ebx;
    buf[2]=edx;
    buf[3]=ecx;
}

int main()
{
   unsigned int cpu[4];

   get_cpuid(0,cpu);
}

 

需要清楚的是get_cpuid(i,buf)中i等于不同值,代表不同的含义:

0: Get vendor ID

1: Processor Info and Feature Bits,

3: Processor Serial Number

80000000h: Get Highest Extended Function Supported

80000001h: Extended Processor Info and Feature Bits

80000002h,80000003h,80000004h: Processor Brand String

具体访问

 

转载地址:http://blog.csdn.net/emili/article/details/5663448

阅读(8482) | 评论(6) | 转发(2) |
给主人留下些什么吧!~~

GFree_Wind2011-09-01 11:55:02

不错。不过一般我都是使用C读取/proc/cpuinfo里面的内容