如何在Linux中以C语言获取当前进程的处理器ID?

时间:2012-02-20 09:22:08

标签: c linux

我正在编写一个程序,需要知道它正在运行什么逻辑处理器。

This question告诉我如何在汇编中执行此操作,而this question告诉我如何在汇编中使用此代码而不将其转换为AT& T语法。

使用现有的Linux系统调用或库函数是否有更简单的方法,或者我需要重新发明轮子?

3 个答案:

答案 0 :(得分:7)

有特定于Linux的getcpu call

答案 1 :(得分:4)

您可以看到sched_getcpu()

答案 2 :(得分:-1)

试试这个,我不确定你想要的是这个

#include<stdio.h>
#include<sys/utsname.h>

int main()
{

char hostname[1024];
struct utsname userinfo;
if(uname(&userinfo)>=0)
{
  printf("\n***** System Details ******\n");
  printf("System Name    : %s\n",userinfo.sysname);
  printf("System Node    : %s\n",userinfo.nodename);
  printf("System Release : %s\n",userinfo.release);
  printf("System Version : %s\n",userinfo.version);
  printf("System Machine : %s\n",userinfo.machine);
}
else
 printf("\nSystem details fetch failed..\n");



if(gethostname(&hostname,1024)==0)
{
  printf("Hostname : %s\n",hostname);
}
else
 printf("\nHostname details fetch failed..\n");

return 0;
}