(PHP 4 >= 4.3.0, PHP 5)
msg_receive — Reçoit un message depuis une file de messages
$queue
, int $desiredmsgtype
, int &$msgtype
, int $maxsize
, mixed &$message
[, bool $unserialize
= true
[, int $flags
= 0
[, int &$errorcode
]]] )
msg_receive() reçoit le premier message de la
file queue
, le type est spécifié par
desiredmsgtype
.
queue
desiredmsgtype
Si desiredmsgtype
vaut 0, le premier message
de la file est retourné. Si desiredmsgtype
vaut
plus que 0, alors le premier message de ce type sera retourné.
Si desiredmsgtype
vaut moins que 0, le premier
message de la file ayant un type inférieur ou égal à la valeur absolue
de desiredmsgtype
sera retourné. Si aucun message
ne correspond aux critères, votre script attendra la venue d'un tel
message dans la file. Vous pouvez éviter ce blocage en précisant l'option
MSG_IPC_NOWAIT
dans le paramètre
flags
.
msgtype
Le type de message qui a été reçu sera stocké dans ce paramètre.
maxsize
La taille maximale de message est fixée par
maxsize
; si le message de la file est plus grand
que cette taille, la fonction échouera (à moins que vous
n'utilisiez une option flags
, décrite ci-dessous).
message
Le message reçu sera stocké dans le paramètre message
,
à moins qu'il n'y ait eu des erreurs de réception du message.
unserialize
Quand c'est le cas, le message est traité comme s'il avait été linéarisé avec le même mécanisme que le module de session. Le message sera alors délinéarisé, puis retourné au script. Cela vous permettra de recevoir facilement des tableaux ou des objets complexes dans votre script, émis par d'autres scripts PHP, ou, si vous utilisez WDDX, depuis n'importe quelle source compatible WDDX.
Si unserialize
vaut FALSE
,
le message sera retourné intact, et sans modifier les valeurs binaires.
flags
Le paramètre flags
permet de passer des options
pour configurer les appels msgrcv. Par défaut, il vaut 0, mais vous pouvez
spécifier une ou plusieurs options en les combinant avec l'opérateur OR).
MSG_IPC_NOWAIT |
S'il n'y a pas de message du type
desiredmsgtype , retourne immédiatement
et n'attend pas. La fonction échouera et retournera un entier
correspondant à MSG_ENOMSG .
|
MSG_EXCEPT |
En utilisant cette option en combinaison avec
un type desiredmsgtype supérieur à 0, la
fonction va lire le premier message qui n'est pas
du type demandé par desiredmsgtype . |
MSG_NOERROR |
Si le message est plus grand que maxsize ,
cette option va tronquer le message à la taille de
maxsize et ne signalera pas d'erreur.
|
errorcode
Si la fonction échoue, le paramètre optionnel
errorcode
sera défini à la valeur
de la variable système errno.
Cette fonction retourne TRUE
en cas de
succès ou FALSE
si une erreur survient.
Lors de la réception réussie d'un message, la file est mise à jour comme ceci : msg_lrpid prend la valeur de l'identifiant de processus du processus appelant, msg_qnum est décrémenté de 1 et msg_rtime prend la date et l'heure courante.