在C语言中,线程的返回值可以通过使用pthread_join
函数来获取。pthread_join
函数的原型如下:
int pthread_join(pthread_t thread, void **retval);
pthread_join
函数将会阻塞调用线程,直到指定的thread
线程结束。当指定的线程结束后,其返回值将会被存储在retval
指针所指向的位置中。
下面是一个使用pthread_join
函数获取线程返回值的例子:
#include <stdio.h>
#include <pthread.h>
void *thread_function(void *arg) {
int *value = (int *)arg;
*value = 10;
return NULL;
}
int main() {
pthread_t thread_id;
int thread_arg = 0;
pthread_create(&thread_id, NULL, thread_function, &thread_arg);
pthread_join(thread_id, NULL);
printf("Thread return value: %d\n", thread_arg);
return 0;
}
在上面的例子中,thread_function
函数将会将thread_arg
的值设置为10,并且通过返回NULL
来结束线程。在main
函数中,我们创建了一个线程,并且等待该线程结束。线程结束后,我们将线程的返回值打印出来。在这个例子中,线程返回值为10。