thrd_start_t的返回值有什么作用?

编程语言 2026-07-11

在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导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章