sem_unlink()

Уничтожить именованный семафор

Прототип:

#include <semaphore.h>
int sem_unlink( const char *sem_name );

Аргументы:

sem_name
Имя семафора, который требуется уничтожить.

Библиотека:

libc

Описание:

Функция sem_unlink() уничтожает именованный семафор sem_name. Открытые семафоры удаляются так же, как unlink() удаляет открытые файлы. Процессы, в которых семафор уже открыт могут продолжать его использовать, но при последнем вызове sem_close() семафор будет окончательно удален.

Любая попытка использовать sem_open() для удаленного семафора будет ссылаться на новый семафор.

Семафоры сохраняют состояние до тех пор, пока система продолжает работать.

Возвращаемое значение:

0
Успешное завершение.
-1
Возникла ошибка. Код ошибки записан в errno.

Коды ошибок:

EACCESS
Недостаточно прав для удаления семафора.
ELOOP
Слишком много уровней символических ссылок или префиксов.
ENOENT
Семафор sem_name не существует.
ENAMETOOLONG
Аргумент sem_name длиннее, чем (NAME_MAX - 8).
ENOSYS
Функция sem_unlink() не реализована для файловой системы, связанной с sem_name.

Классификация:

POSIX 1003.1 Semaphores

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Да
В потоке
Да

Тематические ссылки:

sem_open(), sem_close(), sem_wait(), sem_trywait(), sem_post()

procnto-*




Предыдущий раздел: Описание API системной библиотеки