PTHREAD_MUTEX_INITIALIZER是一个常量初始值设定项,仅在初始化时有效.它是一个宏,不一定扩展为整数类型.
PTHREAD_MUTEX_INITIALIZER
你mute=mutex;是无效的 - 你应该使用:
mute=mutex;
pthread_mutex_init(&mute, NULL);
或者如果你动态分配互斥量:
m = malloc(sizeof(pthread_mutex_t))); pthread_mutex_init(m, NULL);