【问题标题】:Get vendor ID in C using cpuid使用 cpuid 在 C 中获取供应商 ID
【发布时间】:2015-03-02 22:18:28
【问题描述】:

我只想获取我的供应商 ID,即 GenuineIntel 在 C 中使用 cpuid。

这是我要使用的function

void __cpuid(
   int cpuInfo[4],
   int function_id
);

这是我的错误代码:

int main(){
  int cpuInfo[4];
__cpuid(cpuInfo, 1);
}

【问题讨论】:

标签: c cpuid


【解决方案1】:

假设您在 Windows 上运行,您需要将 #include <intrin.h> 添加到您的代码中。见here

【讨论】:

    【解决方案2】:
    #include <string.h>
    #include <locale.h>
    #include <intrin.h>
    #include <stdio.h>
    
    // Prototipos
    int LeeIDFabricante (char * CadFabricante);
    //void LeeIDModelo (char * CadenaModelo);
    
    
    int main(int argc, char *argv[])
    {
        char CadFabricante[0x20];
        char CadenaModelo[0x40];
        int Resultado;
        setlocale( LC_ALL, "Spanish" );
    
        Resultado = LeeIDFabricante(CadFabricante);
        CadFabricante[12]='\0';
        printf("\nLa identificacion del fabricante es: %s. El maximo valor de CPUID es %d.\n", CadFabricante, Resultado);
    
        //LeeIDModelo(CadenaModelo);
        //printf("\nLa cadena de modelo es: %s\n", CadenaModelo);
    
        printf("\nPulse tecla RETORNO para terminar\n");
        getchar();
    
        return 0;
    }
    
    int LeeIDFabricante (char *CadFabricante)
    {
        int p[4] = {-1};
    
        __cpuid(p, 0);
        memset(CadFabricante, 0, sizeof(CadFabricante));
        *((int*)CadFabricante) = p[1];
        *((int*)(CadFabricante+4)) = p[3];
        *((int*)(CadFabricante+8)) = p[2];
    
        return p[0];
    }
    

    【讨论】:

    • 只是代码的答案并不是最有用的。你能扩大答案吗?
    猜你喜欢
    • 2022-01-22
    • 2019-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-30
    • 2012-04-22
    相关资源
    最近更新 更多