sem_get

Get a semaphore id

&reftitle.description; ``SysvSemaphore``false```sem_get` `int` `key` `int` `max_acquire` 1 `int` `permissions` 0666 `bool` `auto_release`&true;

`sem_get` returns an id that can be used to access the System V semaphore with the given `key`.

A second call to `sem_get` for the same key will return a different semaphore identifier, but both identifiers access the same underlying semaphore.

If `key` is `0`, a new private semaphore is created for each call to `sem_get`.

&reftitle.parameters;

`key`

`max_acquire`

- The number of processes that can acquire the semaphore simultaneously is set to `max_acquire`.

`permissions`

- The semaphore permissions. Actually this value is set only if the process finds it is the only process currently attached to the semaphore.

`auto_release`

- Specifies if the semaphore should be automatically released on request shutdown.

&reftitle.returnvalues;

Returns a positive semaphore identifier on success, or &false; on error.

&reftitle.changelog;

&Version; | &Description;
8.0.0 | On success, this function returns a `SysvSemaphore` instance now; previously, a `resource` was returned.
8.0.0 | The type of `auto_release` has been changed from `int` to `bool`.

&reftitle.notes;

When using `sem_get` to access a semaphore created outside PHP, note that the semaphore must have been created as a set of 3 semaphores (for example, by specifying 3 as the `nsems` parameter when calling the C `semget()` function), otherwise PHP will be unable to access the semaphore.

&reftitle.seealso;

- `sem_acquire`
- `sem_release`
- `ftok`