Next: La primitive de contrôle Up: Les files de messages Previous: L'envoi de message

La primitive d'extraction

#include <sys/msg.h>
int msgrcv(int dipc, void *p_msg, int taille, long type, int options);
est une demande de lecture dans la file dipc d'un message de longueur inférieure ou égale à taille, qui sera copié dans la zone pointée par p_msg. options est une combinaison des constantes:
IPC_NOWAIT
si la file est vide, le message est non-bloquant.
MSG_NOERROR
si le texte du message à extraire est de longueur supérieure à taille, alors le message est extrait tronqué sans signaler d'erreur.

Le paramètre type permet de spécifier le type du message à extraire:

Dans tous les cas, l'appel est bloquant si il n'y a pas de message du type voulu en attente.

Les causes d'échec :

EINVAL
file inexistante
EINVAL
taille négative
E2BIG
taille message > taille, et pas de MSG_NOERROR
ENOMSG
pas de message et IPC_NOWAIT

et les mêmes codes d'interruptions que msgsnd.



Dominique REVUZ
Mon Feb 2 12:10:31 MET 1998
Une Bug Un mail Merci