msg_receive
Reçoit un message depuis une file de messages
&reftitle.description;
boolmsg_receive
SysvMessageQueuequeue
intdesired_message_type
intreceived_message_type
intmax_message_size
mixedmessage
boolunserialize&true;
intflags0
interror_code&null;
msg_receive reçoit le premier message de la
file queue, le type est spécifié par
desired_message_type.
&reftitle.parameters;
queue
Descripteur de ressource de file d'attente de messages
desired_message_type
Si desired_message_type vaut 0, le premier message
de la file est retourné. Si desired_message_type vaut
plus que 0, alors le premier message de ce type sera retourné.
Si desired_message_type vaut moins que 0, le premier
message de la file ayant un type inférieur ou égal à la valeur absolue
de desired_message_type 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.
received_message_type
Le type de message qui a été reçu sera stocké dans ce paramètre.
max_message_size
La taille maximale de message est fixée par
max_message_size ; 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).
Options de la fonction msg_receive
MSG_IPC_NOWAIT
S'il n'y a pas de message du type
desired_message_type, 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 desired_message_type supérieur à 0, la
fonction va lire le premier message qui n'est pas
du type demandé par desired_message_type.
MSG_NOERROR
Si le message est plus grand que max_message_size,
cette option va tronquer le message à la taille de
max_message_size et ne signalera pas d'erreur.
errorcode
Si la fonction échoue, le paramètre optionnel
error_code sera défini à la valeur
de la variable système errno.
&reftitle.returnvalues;
&return.success;
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.
&reftitle.changelog;
&Version;
&Description;
8.0.0
queue attend désormais une SysvMessageQueue;
auparavant, une resource était attendue.
&reftitle.seealso;
msg_remove_queue
msg_send
msg_stat_queue
msg_set_queue