pthread_attr_setdetachstate函数用法详解
pthread_attr_setdetachstate函数简介
- 头文件包含
#include <pthread.h>
- 函数定义
int pthread_attr_setdetachstate(pthread_attr_t * attr \
int pthread_attr_getdetachstate(const pthread_attr_t * attr ,
int * detachstate );
- 编译链接选项
-pthread
pthread_attr_setdetachstate函数常见使用错误
- 链接错误
undefined reference to `pthread_attr_setdetachstate'
解决办法:添加链接选项
-pthread
- 编译错误
warning: implicit declaration of function ‘pthread_attr_setdetachstate’ [-Wimplicit-function-declaration]
解决办法:包含头文件
#include <pthread.h>
pthread_attr_setdetachstate函数详细描述
pthread_attr_setdetachstate ()函数将attr引用的thread attributes对象的分离状态属性设置为detachstate 中指定的值。分离状态属性确定使用thread attributes对象attr创建的线程是以可连接状态还是分离状态创建。
可以在detachstate :中指定以下值
- 使用attr创建的 PTHREAD_CREATE_DETACHED 线程将以分离状态创建。
- 使用attr创建的 PTHREAD_CREATE_JOINABLE 线程将以可接合状态创建。
在新初始化的thread attributes对象中,detach state属性的默认设置是PTHREAD_CREATE_JOINABLE
pthread_attr_getdetachstate ()返回由detachstate 指向的缓冲区中的线程属性对象attr的分离状态属性
pthread_attr_setdetachstate函数返回值
如果成功,这些函数返回0;错误时,它们返回一个非零错误号。
pthread_attr_setdetachstate函数错误码
pthread_attr_setdetachstate ()可能会失败,出现以下错误:
- EINVAL 在detachstate 中指定了无效值
pthread_attr_setdetachstate函数其他说明
有关分离线程和可接合线程的更多细节,请参见pthread_create (3)。
在可接合状态下创建的线程最终应该使用pthread_join (3)接合或使用pthread_detach (3);分离(请参阅pthread_create (3)
在以后对pthread_detach (3)或pthread_join (3)的调用中指定以分离状态创建的线程的线程ID是错误的
pthread_attr_setdetachstate函数使用举例
参见pthread_attr_init (3)
评论区