Fordert Zugriff auf eine Semaphor-ID an

# sem_get

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

sem_get — Fordert Zugriff auf eine Semaphor-ID an

### Beschreibung

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

sem_get() liefert eine ID, die für den Zugriff auf den System-V-Semaphor mit dem gegebenen `key` benutzt werden kann.

Weitere Aufrufe von sem_get() für den gleichen Key liefern unterschiedliche Semaphor-IDs, diese greifen aber auf den gleichen darunterliegenden Semaphor zu.

Ist `key` gleich `0` wird ein neuer privater Semaphor für jeden Aufruf von sem_get() erzeugt.

### Parameter-Liste

`key`
`max_acquire`
  Die Anzahl der Prozesse, die gleichzeitig Zugriff auf den Semaphor erhalten können, wird durch den Parameter `max_acquire` festgelegt
`permissions`
  Die Zugriffsrechte für den Semaphore. Der Wert wird nur gesetzt, wenn der aktuelle Prozess der einzige ist der in diesem Augenblick mit dem Semaphor verknüpft ist.
`auto_release`
  Legt fest, ob der Semaphor am Skriptende automatisch freigegeben werden soll.

### Rückgabewerte

Gibt einen positiven Semaphor-Identifier zurück oder `false` bei Fehlern.

### Changelog

Version | Beschreibung
--- | ---
8.0.0 | Bei Erfolg gibt diese Funktion nun eine SysvSemaphore-Instanz zurück; vorher wurde eine resource zurückgegeben.
8.0.0 | Der Typ von `auto_release` wurde von int auf bool geändert.

### Anmerkungen

Warnung

Wird sem_get() verwendet, um auf einen Semaphor zuzugreifen, der außerhalb von PHP erzeugt wurde, ist zu beachten, dass der Semaphor als ein Satz von 3 Semaphoren erzeugt wurde (zum Beispiel durch Angabe von 3 für den `nsems`-Parameter beim Aufruf der C-Funktion `semget()`); andernfalls wird PHP nicht in der Lage sein, auf den Semaphor zuzugreifen.

### Siehe auch

- sem_acquire() - Fordert Zugriff auf einen Semaphor an
- sem_release() - Gibt einen Semaphor frei
- ftok() - Erzeugt aus einem Dateipfad und einem Projektbezeichner einen System-V-IPC-Schlüssel

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