pthread_mutexattr_getpshared, pthread_mutexattr_setpshared -
возвращает/изменяет
общепроцессный
атрибут
мьютекса
POSIX threads library (
libpthread,
-lpthread)
#include <pthread.h>
int pthread_mutexattr_getpshared(
const pthread_mutexattr_t *restrict attr,
int *restrict pshared);
int pthread_mutexattr_setpshared(pthread_mutexattr_t *attr,
int pshared);
Эти
функции
возвращают
и изменяют
общепроцессный
атрибут
мьютекса в
объекте
атрибутов
мьютекса.
Данный
атрибут
должен
быть
установлен
соответствующим
образом
для
обеспечения
правильной,
эффективной
работы
мьютекса,
созданного
с
использованием
данного
объекта
атрибутов.
В
общепроцессном
аргументе
можно
указать
одно из
следующих
значений:
- PTHREAD_PROCESS_PRIVATE
- Мьютексы,
созданные
с таким
объектом
атрибутов,
будут
считаться
общими
только для
нитей
одного
процесса,
инициализировавшего
мьютекс.
Это
значение
используется
по
умолчанию
для
общепроцессного
атрибута
мьютекса.
- PTHREAD_PROCESS_SHARED
- Мьютексы,
созданные
с таким
объектом
атрибутов,
будут
считаться
общими
между
всеми
нитями,
имеющими
доступ к
памяти,
содержащей
объект,
даже нити
разных
процессов.
Функция
pthread_mutexattr_getpshared()
помещает
значения
общепроцессного
атрибута
объекта
атрибутов
мьютекса,
на который
указывает
attr, в
расположение,
указанное
в
pshared.
Функция
pthread_mutexattr_setpshared()
изменяет
значения
общепроцессного
атрибута
объекта
атрибутов
мьютекса,
на который
указывает
attr, на
значение,
заданное в
pshared.
Если
attr не
ссылается
на
инициализированный
объект
атрибутов
мьютекса,
то
поведение
не
определено.
При
успешном
выполнении
эти
функции
возвращают
0. При ошибке
возвращается
положительный
номер
ошибки.
Функция
pthread_mutexattr_setpshared() может
завершаться
со
следующими
ошибками:
- EINVAL
- Неверное
значение в
pshared.
- ENOTSUP
- Значение
pshared равно
PTHREAD_PROCESS_SHARED, но
реализация
не
поддерживает
общепроцессные
мьютексы.
POSIX.1-2001, POSIX.1-2008.
pthread_mutexattr_init(3),
pthreads(7)
Русский
перевод
этой
страницы
руководства
был сделан
Alexey, Azamat Hackimov <
[email protected]>, kogamatranslator49
<
[email protected]>, Kogan, Max Is <
[email protected]>, Yuri
Kozlov <
[email protected]> и Иван
Павлов <
[email protected]>
Этот
перевод
является
бесплатной
документацией;
прочитайте
Стандартную
общественную
лицензию GNU
версии 3
или более
позднюю,
чтобы
узнать об
условиях
авторского
права. Мы не
несем
НИКАКОЙ
ОТВЕТСТВЕННОСТИ.
Если вы
обнаружите
ошибки в
переводе
этой
страницы
руководства,
пожалуйста,
отправьте
электронное
письмо на
[email protected]