# sem_get

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

sem_get — Retourne un identifiant de sémaphore

### Description

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

sem_get() retourne un identifiant qui pourra être utilisé pour accéder à un sémaphore System V.

Un deuxième appel à sem_get() avec la même clé retournera un identifiant différent, mais les deux identifiants permettront d'accéder au même sémaphore.

Si `key` est `0`, un nouvel sémaphore privé est crée pour chaque appel à sem_get().

### Liste de paramètres

`key`

`max_acquire`

  Le nombre de processus qui peuvent réserver simultanément le sémaphore est précisé dans le paramètre `max_acquire`.

`permissions`

  Les permissions du sémaphore. Actuellement, cette valeur n'est affectée que si le processus est le seul processus actuellement attaché au sémaphore.

`auto_release`

  Le paramètre optionnel `auto_release` spécifie si le sémaphore doit être automatiquement libéré à la fermeture.

### Valeurs de retour

Retourne une ressource de sémaphore en cas de succès, et `false` en cas d'erreur.

### Historique

Version | Description
--- | ---
8.0.0 | En cas de succès, cette fonction retourne une instance de SysvSemaphore désormais; auparavant; une resource était retourné.
8.0.0 | Le type de `auto_release` a été modifié de int à bool.

### Notes

Avertissement

Lorsque vous utilisez la fonction sem_get() pour accéder à un sémaphore créé en dehors de PHP, veuillez noter que le sémaphore doit avoir été créé comme un jeu de 3 sémaphores (par exemple, en spécifiant 3 comme paramètre `nsems` lors de l'appel à la fonction C `semget()`), sinon, PHP ne sera pas capable d'accéder à ce sémaphore.

### Voir aussi

- sem_acquire() - Réserve un sémaphore
- sem_release() - Libère un sémaphore
- ftok() - Convertit un chemin et un identifiant de projet en une clé System V IPC