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

# sem_get

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

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

### Описание

function 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

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open