• 获取cpu真实型号


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

    [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 cpuid "
    "movl %%ebx, %%esi .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++ = ''; /* Zero-pad the rest */
    }
    }


    int main()
    {
    get_model_name();

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

    水平有限,如果有错误,请帮忙提醒我。如果您觉得本文对您有帮助,可以点击下面的 推荐 支持一下我。版权所有,需要转发请带上本文源地址,博客一直在更新,欢迎 关注 。
  • 相关阅读:
    站立会议第1天
    博客园用户体验
    风险评估
    寻找正整数中1的个数
    每个小组对本组的意见
    对每个小组的评论和建议
    每日scrum(六)
    每日scrum(五)
    分析电脑控制的丹佛机场行李系统
    每日scrum(四)
  • 原文地址:https://www.cnblogs.com/10087622blog/p/7155408.html
Copyright © 2020-2023  润新知