Прототип функции
#include <pthread.h>
int pthread_create(pthread_t *thread, pthread_attr_t *attr, void * (*start_routine)(void *), void *arg);
Описание функции
Функция pthread_create служит для создания новой нити исполнения (thread'а) внутри текущего процесса. Настоящее описание не является полным описанием функции, а служит только целям данного курса. Для изучения полного описания обращайтесь к UNIX man.
Новый thread будет выполнять функцию start_routine с прототипом
void * start_routine(void *);
передавая ей в качестве аргумента параметр arg. Если требуется передать более одного параметра, они собираются в структуру, и передается адрес этой структуры. Значение, возвращаемое функцией start_routine не должно указывать на динамический объект данного thread'а.
Параметр attr служит для задания различных атрибутов создаваемого thread'а. Их описание выходит за рамки нашего курса и мы вседа будем полагать их заданными по умолчанию, подставляя в качестве аргумента значение NULL.
Возвращаемые значения
При удачном завершении функция возвращает значение 0 и помещает идентификатор новой нити исполнения по адресу, на который указывает параметр thread. В случае ошибки возвращается положительное значение (а не отрицательное, как в большинстве системных вызовов и функций!), которое определяет код ошибки, описанный в файле errno.h. Значение системной переменной errno при этом не устанавливается.