array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'en', ), 'this' => array ( 0 => 'function.sem-get.php', 1 => 'sem_get', ), 'up' => array ( 0 => 'ref.sem.php', 1 => 'Semaphore Functions', ), 'prev' => array ( 0 => 'function.sem-acquire.php', 1 => 'sem_acquire', ), 'next' => array ( 0 => 'function.sem-release.php', 1 => 'sem_release', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'en', 'path' => 'reference/sem/functions/sem-get.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4, PHP 5, PHP 7, PHP 8)
sem_get — Get a semaphore id
$key
,$max_acquire
= 1,$permissions
= 0666,$auto_release
= true
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.
Version | Description |
---|---|
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.