sem_get

(PHP 4, PHP 5, PHP 7)

sem_getПолучение идентификатора семафора

Описание

sem_get ( int $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