sem_destroy -
уничтожает
безымянный
семафор
POSIX threads library (
libpthread,
-lpthread)
#include <semaphore.h>
int sem_destroy(sem_t *sem);
Функция
sem_destroy()
уничтожает
безымянный
семафор,
расположенный
по адресу
sem.
С помощью
sem_destroy() должны
уничтожаться
только
семафоры,
которые
были
инициализированы
с помощью
sem_init(3).
Уничтожение
семафора,
заблокированного
другим
процессом
или нитью (в
sem_wait(3)),
приводит к
непредсказуемым
последствиям.
Использование
уничтоженного
семафора (и
повторно
не
инициализированного
с помощью
sem_init(3))
приводит к
непредсказуемым
результатам.
При
успешном
выполнении
sem_destroy()
возвращается
0; при ошибке
возвращается
-1, а в
errno
содержится
код ошибки.
- EINVAL
- Значение
sem не
является
корректным
для
семафора.
Описание
терминов
данного
раздела
смотрите в
attributes(7).
Интерфейс |
Атрибут |
Значение |
sem_destroy() |
Безвредность
в нитях |
MT-Safe |
POSIX.1-2001, POSIX.1-2008.
Безымянный
семафор
должен
уничтожаться
с помощью
sem_destroy() до
высвобождения
памяти,
которую он
использует.
Неследование
этому
правилу
приводит в
некоторых
реализациях
к утечке
ресурсов.
sem_init(3),
sem_post(3),
sem_wait(3),
sem_overview(7)
Русский
перевод
этой
страницы
руководства
был сделан
Alexander Golubev <
[email protected]>, Azamat Hackimov
<
[email protected]>, Hotellook, Nikita
<
[email protected]>, Spiros Georgaras <
[email protected]>, Vladislav
<
[email protected]>, Yuri Kozlov <
[email protected]>
и Иван
Павлов <
[email protected]>
Этот
перевод
является
бесплатной
документацией;
прочитайте
Стандартную
общественную
лицензию GNU
версии 3
или более
позднюю,
чтобы
узнать об
условиях
авторского
права. Мы не
несем
НИКАКОЙ
ОТВЕТСТВЕННОСТИ.
Если вы
обнаружите
ошибки в
переводе
этой
страницы
руководства,
пожалуйста,
отправьте
электронное
письмо на
[email protected]