diff --git a/chp6/affinity.c b/chp6/affinity.c new file mode 100644 index 0000000..66b722e --- /dev/null +++ b/chp6/affinity.c @@ -0,0 +1,25 @@ +#define _GNU_SOURCE +#include +#include + +int main(void) +{ + cpu_set_t set; + CPU_ZERO(&set); + CPU_SET(0, &set); + CPU_CLR(1, &set); + + int ret = sched_setaffinity(0, sizeof(cpu_set_t), &set); + if (ret == -1) { + perror("sched_setaffinity"); + } + + for (int i = 0; i < CPU_SETSIZE; i++) { + int cpu = CPU_ISSET(i, &set); + if (cpu) { + printf("cpu=%d is set\n", i); + } + } + + return 0; +}