(PHP 4, PHP 5, PHP 7, PHP 8)
sem_get — Получает идентификатор семафора
$key
,$max_acquire
= 1,$permissions
= 0666,$auto_release
= true
Функция sem_get() возвращает идентификатор, который используется
для доступа к семафору System V по заданному значению key
.
Очередные вызовы функции sem_get() для того же ключа будут возвращать другие идентификаторы, однако, все они будут ссылаться на один и тот же семафор.
Если значение параметра key
равно 0
, то для каждого вызова
функции sem_get() создаётся новый приватный семафор.
key
max_acquire
Число процессов, которые могут одновременно использовать семафор, задаётся
через параметр max_acquire
.
permissions
Права доступа к семафору. В действительности, устанавливается только если процесс — единственный, кто пользуется семафором.
auto_release
Параметр определяет, должен ли семафор автоматически освобождаться при завершении работы.
При успешном завершении возвращается положительный идентификатор семафора, или false
,
если возникла ошибка.
Версия | Описание |
---|---|
8.0.0 | В случае успешного выполнения функция возвращает экземпляр класса SysvSemaphore; раньше возвращался ресурс (resource). |
8.0.0 |
Тип auto_release изменили
с целого числа (int) на логическое значение (bool).
|
Когда функцию sem_get() вызывают для доступа к семафору, который создали
вне PHP, обращают внимание на то, что этот семафор должны были создать как набор
из ттрёх семафоров (например, путём указания 3 как значения для параметра
nsems
во время вызова C-функции semget()
),
иначе PHP не сможет обратиться к семафору.