用C语言实现linux下非root用户获取系统CPU的id
程序员文章站
2022-07-15 09:47:43
...
#include <stdio.h>
char *cpu_id(char *id)
{
//char s[30];
unsigned long s1,s2,s3,s4;
char sel;
asm volatile
( "movl $0x01 , %%eax ; \n\t"
"xorl %%edx , %%edx ;\n\t"
"cpuid ;\n\t"
"movl %%edx ,%0 ;\n\t"
"movl %%eax ,%1 ; \n\t"
:"=m"(s1),"=m"(s2)
);
//printf("%08X-%08X-",s1,s2);
asm volatile
("movl $0x03,%%eax ;\n\t"
"xorl %%ecx,%%ecx ;\n\t"
"xorl %%edx,%%edx ;\n\t"
"cpuid ;\n\t"
"movl %%edx,%0 ;\n\t"
"movl %%ecx,%1 ;\n\t"
:"=m"(s3),"=m"(s4)
);
// printf("%08X-%08X \n",s3,s4);
sprintf(id,"%08X-%08X-%08X-%08X",s1,s2,s3,s4);
printf("***%s***\n",id);
return id;
}
int main(int argc, char* argv[])
{
char id[30];
cpu_id(id);
printf("%s\n",id);
return 0;
}
上一篇: 1267. 统计参与通信的服务器
下一篇: 三种方法:求一个整数在二进制中1的个数