Next: La primitive de contrôle
Up: Les files de messages
 Previous: L'envoi de message
 
 #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:
-  si type > 0, le plus vieux message de ce type est extrait;
-  si type == 0, le plus vieux message est extrait;
-  si type < 0, le message le plus vieux du type le plus petit, mais inférieur ou égal à | type |, est extrait.
      Ceci permet de définir des priorités entre les messages.
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
 Une Bug Un mail Merci