sem_get

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

sem_getRetorna un identificador de semáforo

Descripción

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

sem_get() retorna un identificador que podrá ser utilizado para acceder a un semáforo System V.

Una segunda llamada a sem_get() con la misma clave retornará un identificador diferente, pero ambos identificadores permitirán acceder al mismo semáforo.

Si key es 0, un nuevo semáforo privado se crea para cada llamada a sem_get().

Parámetros

key

max_acquire

El número de procesos que pueden reservar simultáneamente el semáforo se especifica en el argumento max_acquire.

permissions

Los permisos del semáforo. Actualmente, este valor solo se aplica si el proceso es el único proceso actualmente adjunto al semáforo.

auto_release

El argumento opcional auto_release especifica si el semáforo debe ser liberado automáticamente al cerrar.

Valores devueltos

Retorna un recurso de semáforo en caso de éxito, y false en caso de error.

Historial de cambios

Versión Descripción
8.0.0 En caso de éxito, esta función retorna una instancia de SysvSemaphore ahora; anteriormente; un resource era retornado.
8.0.0 El tipo de auto_release ha sido modificado de int a bool.

Notas

Advertencia

Al utilizar la función sem_get() para acceder a un semáforo creado fuera de PHP, tenga en cuenta que el semáforo debe haber sido creado como un conjunto de 3 semáforos (por ejemplo, especificando 3 como argumento nsems durante la llamada a la función C semget()), de lo contrario, PHP no será capaz de acceder a este semáforo.

Ver también