pthread_create 返回值
时间: 2024-03-29 16:33:19 浏览: 14
pthread_create函数是用于创建一个新的线程的函数,它的返回值是一个整数类型的错误码。如果返回值为0,则表示线程创建成功;如果返回值为非零值,则表示线程创建失败,具体的错误码可以通过查阅相关文档来获取。在创建线程时,可以通过传递一个回调函数作为参数,该回调函数将在新线程中执行。回调函数的返回值类型为void指针,可以根据需要进行类型转换。在回调函数中,可以执行一些特定的操作,并返回一个值作为线程的返回值。在主线程中,可以使用pthread_join函数来等待新线程的结束,并获取其返回值。
以下是一个示例代码,演示了pthread_create函数的使用和回调函数的返回值获取[^1]:
```c
#include <stdio.h>
#include <pthread.h>
void *cb_fn(void *arg) //线程回调函数
{
printf("in cb_fn\n");
return (void *)"OK";
}
int main()
{
int ret;
void *retval;
pthread_t pid;
ret = pthread_create(&pid, NULL, cb_fn, NULL);
if (ret < 0) {
printf("pthread_create error, ret=%d\n", ret);
return -1;
}
pthread_join(pid, &retval);
printf("retval = %s\n", (char *)retval);
return 0;
}
```
在上述代码中,我们创建了一个新线程,并将cb_fn作为回调函数传递给pthread_create函数。在cb_fn函数中,我们打印了一条信息,并返回了一个字符串"OK"作为线程的返回值。在主线程中,我们使用pthread_join函数等待新线程的结束,并通过retval指针获取其返回值,并打印出来。