如何复制pthread_attr_t?

时间:2013-06-06 18:54:21

标签: c pthreads posix

我想使用memcpy复制pthread_attr_t并不是一个好主意,因为结构在Darwin和Linux上看起来都是私有的。复制pthread_attr_t的正确方法是什么? pthreads中没有复制功能。获取/设置所有属性可能是最安全的方式,但它不是未来的证据。

这就是我在Ubuntu盒子上的样子,仅供参考:

#define __SIZEOF_PTHREAD_ATTR_T 36

typedef union
{
    char __size[__SIZEOF_PTHREAD_ATTR_T];
    long int __align;
} pthread_attr_t;

1 个答案:

答案 0 :(得分:3)

有趣的问题,但答案(从pthread_attr_init()规范的基本原理部分判断)是你不应该复制pthread_attr_t个对象。你是对的,memcpy()等不是可靠的机制(无论如何,普通的旧任务有什么问题?)。