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равен , то для кожного виклику 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