pthread / uthread类型变量

时间:2019-03-01 03:30:43

标签: c pthreads

在研究uthread(来自pthread)时,我遇到了以下代码行:

uthread_t uthread_create (void* (*start_proc)(void*), void* start_arg) 

我不确定uthread_create()是第一个参数。是否将没有特定类型的指针转​​换为start_proc类型的指针?有人可以澄清吗?

1 个答案:

答案 0 :(得分:0)

第一个参数是函数指针。 start_proc指向一个带有单个void *参数并返回void *的函数,在这种情况下,该函数是线程的入口点。另外,uthread_create的第二个参数是在调用时将传递给start_proc的参数。

像这样的函数将满足函数指针:

void *my_thread(void *p)
{
    char *s = p;
    printf("s=%s", s);
    return NULL;
}

您可以这样呼叫uthread_create

uthread_t tid;
char str[] = "test string";
tid = uthread_create(my_thread, str);