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