(PHP 4 >= 4.3.0, PHP 5, PHP 7)
msg_receive — Eine Nachricht aus einer Message Queue auslesen
$queue
, int $desiredmsgtype
, int &$msgtype
, int $maxsize
, mixed &$message
[, bool $unserialize
= TRUE
[, int $flags
= 0
[, int &$errorcode
]]] ) : bool
msg_receive() liest die erste Nachricht der Message Queue gegeben durch queue
vom Typ
desiredmsgtype
aus.
queue
Message Queue Ressourcen-Handle
desiredmsgtype
Wenn desiredmsgtype
gleich 0 ist, wird die erste
Nachricht aus der Queue zurückgegeben. Wenn desiredmsgtype
größer als 0 ist, wird die erste Nachricht genau diesen Typs zurückgegeben.
Wenn desiredmsgtype
kleiner als 0 ist,
wird die erste Nachricht kleiner oder gleich dem absoluten Wert von
desiredmsgtype
zurückgegeben.
Wenn keine passende Nachricht existiert, blockiert diese Funktion solange, bis eine
passende Nachricht verfügbar ist. Durch das Setzen des Flags MSG_IPC_NOWAIT
im flags
Parameter kann das blockierende Verhalten verhindert werden.
msgtype
In diesem Parameter wird der Typ der empfangenen Nachricht gespeichert.
maxsize
Die maximale Größe der zu akzeptierenden Nachricht wird durch
maxsize
angegeben; Wenn die Nachricht in der Message Queue größer
ist als dieser Wert schlägt die Funktion fehl (es sei denn, es wird das entsprechende
Flag im flags
Parameter gesetzt).
message
Die empfangene Nachricht wird in message
gespeichert,
es sei denn es tritt ein Fehler beim Empfang auf.
unserialize
Wenn dieser Wert auf
TRUE
gesetzt wird, wird die Nachricht behandelt, als wäre sie mit
demselben Mechanismus serialisiert worden, wie das Session Modul.
Die Nachricht wird deserialisiert und zurückgegeben. Dies erlaubt
einen einfachen Empfang von Array und komplexen Objektstrukturen
von anderen PHP Skripten. Wenn Sie den WDDX Serializer verwenden,
erlaubt es den Empfang von einer WDDX kompatiblen Quelle.
Wenn unserialize
FALSE
ist, wird die Nachricht als
binärsicherer String zurückgegeben.
flags
Der optionale flags
erlaubt die Weitergabe von Flags
an den low-level System Call zu msgrcv. Der Standardwert liegt bei 0,
aber es können einer oder mehrere der folgenden Werte übergeben werden
(durch binäres oder vereint).
MSG_IPC_NOWAIT |
Wenn kein Wert des übergebenen
desiredmsgtype in der Queue vorhanden ist,
gibt die Funktion sofort zurück statt zu warten. Die Funktion
schlägt fehl und gibt den Integer Wert entsprechend zu
MSG_ENOMSG zurück.
|
MSG_EXCEPT |
Dieses Flag in Kombination mit einem
desiredmsgtype größer als 0 sorgt dafür, dass
die Funktion die erste Nachricht zurück gbit, die nicht gleich
desiredmsgtype ist. |
MSG_NOERROR |
Wenn die Nachricht länger als maxsize ist,
wird durch Setzen diese Flags die Nachricht auf
maxsize gekürzt, und die Funktion
signalisiert keinen Fehler.
|
errorcode
Wenn die Funktion fehlschlägt, wird der optionale errorcode
auf den Wert der System errno Variable gesetzt.
Gibt bei Erfolg TRUE
zurück. Im Fehlerfall wird FALSE
zurückgegeben.
Bei erfolgreicher Ausführung wird die Message Queue Datenstruktur
folgendermaßen aktualisiert: msg_lrpid
wird auf die Process-ID
des aufrufenden Prozesses gesetzt, msg_qnum
wird um 1 dekrementiert, und
msg_rtime
wird auf die aktuelle Zeit gesetzt.