复制pthread_rwlock_t会发生什么?

时间:2010-07-23 10:05:25

标签: c++ c

pthread_rwlock t1;
pthread_rwlock_wrlock(&t1);

pthread_rwlock t2 = t1;
发生了什么事? t2被锁定了吗?

2 个答案:

答案 0 :(得分:3)

没有什么特别的事情发生。 pthread_rwlock_t(不是pthread_rwlock,AFAIK)是一个不透明的C结构。复制变量只是复制struct,byte for byte。

在Pthreads级别,复制pthread_rwlock_t会导致未定义的行为。不要这样做。

答案 1 :(得分:0)

创建新副本。以下示例可能会清除事情

#include<stdio.h>
typedef struct
{
char a[8];
}example;
int main()
{
example s1, s2;
strcpy(s1.a,"Hi");
s2=s1;
printf("%s %s \n",s1.a,s2.a);
strcpy(s2.a,"There");
printf("%s %s \n",s1.a,s2.a);
return 0;
}

这将输出:

Hi Hi
Hi There