⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tst-getcpu.c

📁 glibc 库, 不仅可以学习使用库函数,还可以学习函数的具体实现,是提高功力的好资料
💻 C
字号:
#include <errno.h>#include <stdio.h>#include <sched.h>#include <unistd.h>static intdo_test (void){  cpu_set_t cs;  if (sched_getaffinity (getpid (), sizeof (cs), &cs) != 0)    {      printf ("getaffinity failed: %m\n");      return 1;    }  int result = 0;  int cpu = 0;  while (CPU_COUNT (&cs) != 0)    {      if (CPU_ISSET (cpu, &cs))	{	  cpu_set_t cs2;	  CPU_ZERO (&cs2);	  CPU_SET (cpu, &cs2);	  if (sched_setaffinity (getpid (), sizeof (cs2), &cs2) != 0)	    {	      printf ("setaffinity(%d) failed: %m\n", cpu);	      result = 1;	    }	  else	    {	      int cpu2 = sched_getcpu ();	      if (cpu2 == -1 && errno == ENOSYS)		{		  puts ("getcpu syscall not implemented");		  return 0;		}	      if (cpu2 != cpu)		{		  printf ("getcpu results %d not possible\n", cpu2);		  result = 1;		}	    }	  CPU_CLR (cpu, &cs);	}      ++cpu;    }  return result;}#define TEST_FUNCTION do_test ()#include <test-skeleton.c>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -