感谢文洋兄的思路。亲测有效。

[root@storage GetCpuType]# ./main.o
Intel(R) Xeon(R) CPU C5528 @ 2.13GHz

#include <stdio.h>
#include <stdlib.h>

char x86_model_id[64];

static inline void
cpuid(unsigned int op, unsigned int *a, unsigned int *b, unsigned int *c,
unsigned int *d)
{
__asm__ __volatile__ (".byte 0x53\n\tcpuid\n\t"
"movl %%ebx, %%esi\n\t.byte 0x5b"
: "=a" (*a),
"=S" (*b),
"=c" (*c),
"=d" (*d)
: "a" (op));
}

static void get_model_name()
{
unsigned int *v;
char *p, *q;

v = (unsigned int *)x86_model_id;
cpuid(0x80000002, &v[0], &v[1], &v[2], &v[3]);
cpuid(0x80000003, &v[4], &v[5], &v[6], &v[7]);
cpuid(0x80000004, &v[8], &v[9], &v[10], &v[11]);
x86_model_id[48] = 0;

/*
* Intel chips right-justify this string for some dumb reason;
* undo that brain damage:
*/
p = q = &x86_model_id[0];
while (*p == ' ')
p++;
if (p != q) {
while (*p)
*q++ = *p++;
while (q <= &x86_model_id[48])
*q++ = '\0'; /* Zero-pad the rest */
}
}

int main()
{
get_model_name();

printf("%s \n", x86_model_id);
return 0;
}

最新文章

  1. CSS实现垂直居中的5种方法
  2. iOS学习笔记——基础控件(上)
  3. 父视图 使用 UIViewAnimationWithBlocks 时,如何让子视图无动画
  4. windowopen
  5. 图片onerror(转)
  6. Java GC专家系列1:理解Java垃圾回收
  7. openMPI小集群安装
  8. Tiny6410之NAND FLASH驱动
  9. hdu_1254_推箱子(双BFS)
  10. 第一行代码阅读笔记---AndroidMainfest.xml分析
  11. ArcCore重构-目标文件结构化
  12. 【机器学习基础】熵、KL散度、交叉熵
  13. 记一次mac下使用mamp集成环境配置lumen项目自定义域名遇到的花样问题
  14. unigui结合JS方法记录
  15. mybaits拦截器+自定义注解
  16. Android JAR包、Library项目
  17. POJ 3279 Fliptile (二进制枚举)
  18. How to implement long running flows, sagas, business processes or similar
  19. [转]mii-tool与ethtool的用法详解
  20. HDU 6038 Function(思维+寻找循环节)

热门文章

  1. ThinkPHP 整合 PHPExcel ,数据导出功能实现,解决Invalid cell coordinate
  2. redhat初始化yum源,使用阿里云yum源
  3. jquery让页面滚动到底部
  4. zend studio里面这块注释是用什么快捷键按出来的?
  5. 关于cookie与session的理解
  6. 规定CSS的属性仅在IE下生效 在非IE浏览器下不生效
  7. 第一个SpringMVC实例和解析(HelloSpringMVC)
  8. EJB系列 - EJB高级概念
  9. accp8.0转换教材第3章MySQL高级查询(一)理解与练习
  10. java程序员常见面试题目