Функция pthread_mutexattr_init() используется, чтобы инициализировать
атрибуты, связанные с объектом, значениями по умолчанию. Память для
каждого объекта атрибутов выделяется системой поддержки потоков во
время выполнения; mattr - закрытый тип, который содержит системный
объект атрибутов. Возможные значения типа mattr - PTHREAD_PROCESS_PRIVATE
(по умолчанию) и
PTHREAD_PROCESS_SHARED. При вызове этой
функции значение по умолчанию атрибута pshared равно
PTHREAD_PROCESS_PRIVATE, что позволяет использовать инициализированный
мьютекс в пределах процесса.
Прежде, чем повторно инициализировать объект атрибутов мьютекса, его нужно сначала удалить функцией pthread_mutexattr_ destroy(). Вызов функции pthread_mutexattr_init() возвращает указатель на закрытый объект. Если объект не удалить, может произойти утечка памяти; pthread_mutexattr_init() возвращает 0 - после успешного завершения - или другое значение, если произошла ошибка.
Пример вызова функции:
pthread_mutexattr_t mattr;
int ret;
/* инициализация атрибутов значениями по умолчанию */
ret = pthread_mutexattr_init(&mattr);
pthread_mutexattr_t mattr;
int ret;
/* удаление атрибутов */
ret = pthread_mutexattr_destroy(&mattr);