thrd_start_t的返回值有什么作用?
在C 中,thrd_start_t 是一个签名为 int (*)(void *) 的函数。main 将一个 int 作为错误码返回给实例化者,但在线程的情形下,我们就是实例化者。我没有看到关于获取这个返回值的文档,那么它的作用是什么,我应该如何获得它?
解决方案
这个返回值是在对线程进行 [join] 时可以收集到的那个值:
#include <stdio.h>
#include <threads.h>
int thread_func(void* arg) {
return 123;
}
int main() {
thrd_t thr;
thrd_create(&thr, thread_func, NULL);
// ...
int retval;
if (thrd_join(thr, &retval) == thrd_success) {
printf("the thread exited by returning %d\n", retval); // 123
}
}
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。