pthread_rwlock t1;
pthread_rwlock_wrlock(&t1);
pthread_rwlock t2 = t1;
发生了什么事?
t2被锁定了吗?
答案 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