# sem_get

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

sem_get — Get a semaphore id

### 说明

sem_get(
int `$key`,
int `$max_acquire` = 1,
int `$permissions` = 0666,
bool `$auto_release` = `true`
): SysvSemaphore|false

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().

### 参数

`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.

### 返回值

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

### 更新日志

版本 | 说明
--- | ---
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.

### 注释

警告

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.

### 参见

- sem_acquire() - Acquire a semaphore
- sem_release() - Release a semaphore
- ftok() - Convert a pathname and a project identifier to a System V IPC key

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