sem_get

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

sem_getFordert Zugriff auf eine Semaphor-ID an

Beschreibung

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

VersionBeschreibung
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
To Top