sem_get
(PHP 4, PHP 5, PHP 7)
sem_get — Получение идентификатора семафора
Описание
$key
, int $max_acquire = 1
, int $permissions = 0666
, bool $auto_release = true
) : SysvSemaphore|false
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 не сможет обратиться к семафору.
Смотрите также
- sem_acquire() - Захват семафора
- sem_release() - Освобождение семафора
- ftok() - Преобразование пути и идентификатора проекта в ключ System V IPC