Definition | #include <sys/msg.h> int msgrcv(int msqid, void *msgp, size_t msgsz, long int msgtyp, int msgflg); | |
Beschreibung |
msgp zeigt auf einen vom Benutzer definierten Puffer, der zunächst eine Komponente des Typs struct mymsg { long int mtype; /* Nachrichtentyp */ char mtext[1]; /* Nachrichtentext */ } Die Strukturkomponente Die Strukturkomponente msgsz gibt die Größe von msgtyp gibt den Typ der geforderten Nachricht wie folgt an:
msgflg gibt an, welche Aktion ausgeführt werden soll, wenn sich keine Nachricht des geforderten Typs in der Warteschlange befindet. Folgende Aktionen sind möglich:
Bei erfolgreicher Beendigung werden die folgenden Aktionen auf der msqid zugeordneten Datenstruktur ausgeführt:
Werden Threads verwendet, so wirkt sich die Funktion auf den Prozess oder auf einen Thread wie folgt aus: Der Parameter msgflg bezieht sich auf den aufrufenden Thread. | |
Returnwert | Anzahl der in | |
bei Erfolg. | ||
| -1 | bei Fehler. |
Fehler |
| |
| Der Wert von | |
| Der aufrufende Prozess erhält keine Erlaubnis für diese Operation. | |
Erweiterung | ||
| msgp verweist auf eine unzulässige Adresse. (Ende) | |
| Die Warteschlangenkennzahl msqid wurde aus dem System entfernt. | |
|
| |
| msqid ist keine gültige Warteschlangenkennzahl, oder der Wert von msgsz ist kleiner als 0. | |
| Die Warteschlange enthält keine Nachricht des geforderten Typs, und | |
Hinweise | msgp sollte in den Typ Das Kommittee des IEEE 1003.4-Standards entwickelt gerade eine alternative Schnittstelle für die Interprozeßkommunikation. Anwendungsprogrammierer, die Interprozeßkommunikation einsetzen, sollten die Anwendungen so konzipieren, daß Module, die derzeit beschriebene Funktionen für Interprozeßkommunikation benutzen, einfach geändert werden können. | |
Siehe auch | auch |