侧边栏壁纸
博主头像
noerror

虚灵不寐,众理具而万事出。

  • 累计撰写 239 篇文章
  • 累计创建 9 个标签
  • 累计收到 2 条评论
标签搜索

目 录CONTENT

文章目录

pthread_attr_setaffinity_np函数用法详解

noerror
2022-10-04 / 0 评论 / 0 点赞 / 260 阅读 / 531 字 / 正在检测是否收录...

pthread_attr_setaffinity_np函数用法详解

pthread_attr_setaffinity_np函数简介

  • 头文件包含
#include <pthread.h>
  • 函数定义
int pthread_attr_setaffinity_np(pthread_attr_t * attr ,
                   size_t  cpusetsize , const cpu_set_t * cpuset );
int pthread_attr_getaffinity_np(const pthread_attr_t * attr ,
                   size_t  cpusetsize , cpu_set_t * cpuset );
  • 编译链接选项
-pthread

pthread_attr_setaffinity_np函数常见使用错误

  • 链接错误
    undefined reference to `pthread_attr_setaffinity_np'
    解决办法:添加链接选项
-pthread
  • 编译错误
    warning: implicit declaration of function ‘pthread_attr_setaffinity_np’ [-Wimplicit-function-declaration]
    解决办法:包含头文件
#include <pthread.h>

pthread_attr_setaffinity_np函数详细描述

pthread_attr_setaffinity_np ()函数将attr引用的thread attributes对象的CPU关联掩码属性设置为cpuset 中指定的值。该属性确定使用thread attributes对象attr 创建的线程的CPU关联掩码
pthread_attr_getaffinity_np ()函数返回cpuset 指向的缓冲区中attr引用的thread attributes对象的CPU关联掩码属性
参数cpusetsize是cpuset 指向的缓冲区的长度(以字节为单位)。通常,此参数将被指定为sizeof(cpu_set_t)
有关CPU关联掩码的更多详细信息,请参见sched_setaffinity (2)有关可用于操作和检查CPU集的一组宏的说明,请参见CPU_SET (3)

pthread_attr_setaffinity_np函数返回值

如果成功,这些函数返回0;错误时,它们返回一个非零错误号。

pthread_attr_setaffinity_np函数错误码

  • EINVAL ( pthread_attr_setaffinity_np ()) cpuset指定的CPU在内核支持的集合之外。(内核配置选项CONFIG_NR_CPUS定义用于表示CPU集的内核数据类型所支持的集的范围。)
  • EINVAL ( pthread_attr_getaffinity_np ()) attr引用的线程属性对象的关联掩码中的CPU位于cpusetsize指定的范围之外(即cpuset / cpusetsize太小)。
  • ENOMEM ( pthread_attr_setaffinity_np ())无法分配内存。

pthread_attr_setaffinity_np函数其他说明

仅在glibc2.3.3中,这些函数的版本没有cpusetsize参数。相反,给底层系统调用的CPU集大小总是sizeof(cpu_set_t)

0

评论区