ИМЯ

sem_destroy - уничтожает безымянный семафор

LIBRARY

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]

Recommended readings

Pages related to sem_destroy you should read also: