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