侧边栏壁纸
博主头像
noerror

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

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

目 录CONTENT

文章目录

pthread_attr_setsigmask_np函数用法详解

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

pthread_attr_setsigmask_np函数用法详解

pthread_attr_setsigmask_np函数简介

  • 头文件包含
#include <pthread.h>
  • 函数定义
int pthread_attr_setsigmask_np(pthread_attr_t * attr ,
                               const sigset_t * sigmask );
int pthread_attr_getsigmask_np(const pthread_attr_t * attr ,
                               sigset_t * sigmask );
  • 编译链接选项
-pthread

pthread_attr_setsigmask_np函数常见使用错误

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

pthread_attr_setsigmask_np函数详细描述

pthread_attr_setsigmask_np ()函数将attr引用的thread attributes对象的信号掩码属性设置为*sigmask 中指定的值,如果sigmask指定为NULL,则取消设置attr中任何现有的信号掩码属性。
pthread_attr_getsigmask_np ()函数返回attr在sigmask 指向的缓冲区中引用的thread attributes对象的信号掩码属性如果信号掩码属性当前未设置,则该函数返回特殊值 PTHREAD_ATTR_NO_SIGMASK_NP 作为其结果。

pthread_attr_setsigmask_np函数返回值

pthread_attr_setsigmask_np ()函数在成功时返回0,或在失败时返回非零错误号。
pthread_attr_getsigmask_np ()函数返回0或PTHREAD_ATTR_NO_SIGMASK_NP 当返回0时,信号掩码属性通过sigmask 返回。返回值 PTHREAD_ATTR_NO_SIGMASK_NP 表示信号掩码属性未在attr 中设置
如果发生错误,这些函数将返回一个正的错误号。

pthread_attr_setsigmask_np函数错误码

  • ENOMEM ( pthread_attr_setsigmask_np ())无法分配内存。

pthread_attr_setsigmask_np函数其他说明

信号掩码属性确定将分配给使用thread attributes对象attr 创建的线程的信号掩码,如果未设置此属性,则使用attr创建的线程将继承创建线程的信号掩码的副本。
有关信号掩码的更多详细信息,请参见sigprocmask (2)有关可用于操作和检查信号集的宏集的说明,请参见sigsetops (3)
在没有pthread_attr_setsigmask_np ()的情况下,可以创建具有所需信号掩码的线程,如下所示:

  • 创建线程使用pthread_sigmask (3)保存其当前信号掩码,并将其掩码设置为阻止所有信号。
  • 然后使用pthread_create ();创建新线程,新线程将继承创建线程的信号掩码。
  • 新线程使用pthread_sigmask (3)将其信号掩码设置为所需的值
  • 创建线程将其信号掩码还原为原始值。

按照上述步骤,在新线程将其信号掩码调整到所需的值之前,新线程不可能接收到信号。

0

评论区