(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 не сможет обратиться к семафору.