Операционные системы. Теория и практика. Замятин А.В. - 224 стр.

UptoLike

Составители: 

224
Первый аргумент mattr является указателем на объект атрибутов,
для которого устанавливается область видимости. Второй аргумент яв-
ляется константой, обозначающей устанавливаемую область видимости:
PTHREAD_PROCESS_PRIVATE для области видимости процесса и
PTHREAD_PROCESS_SHARED для области видимости системы.
Мьютекс, созданный в области видимости системы, должен существо-
вать в разделяемой памяти.
Пример вызова функции pthread_mutexattr_setpshared:
#include <pthread.h>
pthread_mutexattr_t mattr;
int ret;
ret = pthread_mutexattr_init(&mattr);
/* переустановка на значение по умолчанию: private */
ret = pthread_mutexattr_setpshared
(&mattr, PTHREAD_PROCESS_PRIVATE);
Функция
pthread_mutexattr_getpshared(pthread_mutexattr_t *mattr, int *pshared)
используется для получения текущей области видимости мьютекса по-
тока:
#include <pthread.h>
pthread_mutexattr_t mattr;
int pshared, ret;
/* получить атрибут pshared для мьютекса */
ret = pthread_mutexattr_getpshared(&mattr, &pshared);
8.3.4 Инициализация мьютекса
Функция pthread_mutex_init предназначена для инициализации
мьютекса
int pthread_mutex_init(pthread_mutex_t *mp, const pthread_mutexattr_t
*mattr).
Мьютекс, на который указывает первый аргумент mp, инициализи-
руется значением по умолчанию, если второй аргумент mattr равен
NULL, или определенными атрибутами, которые уже установлены с по-
мощью pthread_mutexattr_init.
Функция pthread_mutex_init возвращает 0 после успешного завер-
шения или другое значение, если произошла ошибка. Пример использо-
вания функции pthread_mutexattr_init: