Ожидать на именованном или безымянном семафоре без блокировки
#include <semaphore.h>
int sem_trywait( sem_t *sem );
- sem
- Указатель на объект
sem_t
.
libc
Функция sem_trywait() уменьшает значение семафора, если значение семафора больше нуля; иначе функция просто завершается.
- 0
- Семафор был успешно декрементирован.
- -1
- Возникла ошибка. Состояние семафора не изменено. Код ошибки записан в errno.
- EAGAIN
- Семафор уже заблокирован, поэтому он не мог быть немедленно заблокирован функцией sem_trywait().
- EDEADLK
- Обнаружено состояние взаимной блокировки.
- EINVAL
- Недопустимый дескриптор sem.
- EINTR
- Вызов прерван сигналом.
POSIX 1003.1 Semaphores
- Нет
- Обработчик прерываний
- Нет
- Обработчик сигналов
- Да
- В потоке
- Да
sem_destroy(), sem_init(), sem_post(), sem_wait()
Предыдущий раздел: Описание API системной библиотеки