【发布时间】:2014-12-01 16:23:07
【问题描述】:
int pthread_join(pthread_t thread, void **retval);
根据手册页 pthread_join 应该使用指向指针的指针作为参数来存储返回值。我不明白为什么它是这样设计的。在其中使用指针变量就足够了吗?
【问题讨论】:
-
你不理解它并不意味着如果你不遵循函数的规范它就可以工作。
-
它接收你从你的线程进程返回的指针(它有一个
void*结果)。该值必须存储在某处。pthread_join结果将是候选结果,但它用于传达函数成功/失败结果。因此,一个out-param诞生了。作为 C 中的一个输出参数,它以地址的形式提供目标,从而提供指向指针的指针。 -
它是这样设计的,以便线程可以将 void* 存储在线程执行时不会消失的地方。
标签: c pthreads pthread-join