(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
msg_receive — Recibe un mensaje desde una cola de mensajes
$queue,$desired_message_type,&$received_message_type,$max_message_size,&$message,$unserialize = true,$flags = 0,&$error_code = null
msg_receive() recibe el primer mensaje de la
cola queue, cuyo tipo está especificado por
desired_message_type.
queuedesired_message_typedesired_message_type vale 0, se devuelve el primer mensaje
de la cola. Si desired_message_type vale
más que 0, entonces se devolverá el primer mensaje de ese tipo.
Si desired_message_type vale menos que 0, se devolverá el primer
mensaje de la cola cuyo tipo sea inferior o igual al valor absoluto
de desired_message_type. Si no hay mensajes
que cumplan los criterios, el script esperará a que llegue un mensaje
de ese tipo a la cola. Este bloqueo puede evitarse especificando la opción
MSG_IPC_NOWAIT en el parámetro
flags.
received_message_typemax_message_sizemax_message_size; si el mensaje de la cola es más grande
que este tamaño, la función fallará (a menos que se utilice una opción
flags, descrita a continuación).
messagemessage,
a menos que haya habido errores al recibir el mensaje.
unserializeunserialize vale false,
el mensaje se devolverá intacto, sin modificar los valores binarios.
flags
El parámetro flags permite pasar opciones
para configurar las llamadas msgrcv. Por omisión, vale 0, pero se pueden
especificar una o varias opciones combinándolas con el operador OR.
MSG_IPC_NOWAIT |
Si no hay mensajes del tipo
desired_message_type, se devuelve inmediatamente
y no se espera. La función fallará y devolverá un entero
correspondiente a MSG_ENOMSG.
|
MSG_EXCEPT |
Al utilizar esta opción en combinación con
un tipo desired_message_type superior a 0, la
función leerá el primer mensaje que no sea
del tipo solicitado por desired_message_type. |
MSG_NOERROR |
Si el mensaje es más grande que max_message_size,
esta opción truncará el mensaje al tamaño de
max_message_size y no reportará errores.
|
errorcodeerror_code se establecerá al valor
de la variable del sistema errno.
Esta función retorna true en caso de éxito o false si ocurre un error.
Al recibir un mensaje con éxito, la cola se actualiza
de la siguiente manera: msg_lrpid toma el valor del identificador
de proceso del proceso llamante, msg_qnum se decrementa en
1 y msg_rtime toma la fecha y hora actuales.
| Versión | Descripción |
|---|---|
| 8.0.0 |
queue ahora espera una SysvMessageQueue;
anteriormente, se esperaba un resource.
|