sem_get
(PHP 4, PHP 5, PHP 7, PHP 8)
sem_get — Fordert Zugriff auf eine Semaphor-ID an
Beschreibung
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
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