2016-12-04 7 views
0

Выполнение задания на курсе Pthread Scheduling API for Operating Systems. Я наткнулся на функцию, которая выглядит следующим образом:Значение параметра функции в Linux Программирование для Pthread Scheduling API

int pthread_create(pthread_t *thread, const pthread_attr_t *attr, 
         void *(*start_routine) (void *), void *arg); 

Может кто-то пожалуйста объяснить, что делает второй параметр последней функции означает с точки зрения синтаксиса? т.е.

void *(*start_routine) (void *) 

ответ

1

void *(*start_routine) (void *) является указателем на функцию, которая принимает void* в качестве аргумента и возвращает void*.

Как правило, вы можете использовать cdecl.org, чтобы прочитать сложные декларации C. Для void *(*start_routine) (void *), он говорит:

объявить start_routine как указатель на функцию (указатель аннулированию) возвращающую указатель на аннулированию

В Pthreads, функция указатель, переданный в качестве аргумента pthread_create() является нить функция, которая запускается (в зависимости от того, как планируются ОС) после вызова pthread_create().

См. here for a simple example о том, как использовать pthread_create() и функцию потока.

 Смежные вопросы

  • Нет связанных вопросов^_^