设置CPU亲和性
#define _GNU_SOURCE
#include <stdio.h>
#include <pthread.h>
#include <sched.h>
int sys_affinity_bind(int coreNum)
{
cpu_set_t cpuset;
int i, rc;
/* set main thread affinity mask to CPU1 */
CPU_ZERO(&cpuset);
CPU_SET(coreNum, &cpuset);
rc = pthread_setaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpuset);
if (rc)
{
perror("pthread_setaffinity_np failed\n");
printf("pthread_setaffinity_np failed: %d\n", rc);
}
}
编译报错

解决方法
#define _GNU_SOURCE 放在 #include <sched.h>之前

本文档介绍了一个C语言程序,用于将主线程的CPU亲和性绑定到指定的核心。在编译时遇到问题,通过将#define _GNU_SOURCE置于#include<sched.h>之前解决了问题。该代码涉及多线程和系统调用,对于理解Linux系统编程和CPU绑定技术有一定帮助。

277

被折叠的 条评论
为什么被折叠?



