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

UptoLike

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

62
Чтобы установить область видимости атрибутов мьютекса исполь-
зуется функция
int pthread_mutexattr_setpshared(pthread_mutexattr_t* mattr, int)
Первый аргумент 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);
Инициализация мьютекса
Функция pthread_mutex_init предназначена для инициализации
мьютекса
int pthread_mutex_init(pthread_mutex_t *mp, const pthread_mutexattr_t
*mattr).
Мьютекс, на который указывает первый аргумент mp, инициализи-
руется значением по умолчанию, если второй аргумент mattr равен
NULL, или определенными атрибутами, которые уже установлены с по-
мощью pthread_mutexattr_init.