sem_get

(PHP 4, PHP 5, PHP 7, PHP 8)

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
To Top