some-usable-scripts/c/semaphores_manuel_exemples/FileeDeMessage/msgCons.c

50 lines
831 B
C

/* travaille avec msgProd.c
lit les messages du type donne en parametre sur la ligne de cde
*/
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>
#include <stdio.h>
#include <stdlib.h>
/* Defines */
#define cle 17
typedef struct msgbuf_EXD
{
long type;
char text [30];
} MSGP;;
/* Global variables */
int msqid;
int main(int argc, char **argv)
{
MSGP *m = (MSGP *)malloc (sizeof(MSGP));
int type;
if(argc!=2)
{
printf ( "usage : msgCons <type> " ) ;
exit(-1);
}
type = atoi(argv[1]);
msqid = msgget(cle, 0); // ouverture file message
// lecture
while(msgrcv(msqid, m, sizeof(MSGP) ,type,1) != -1)
{
// decodage du message
printf("un message de type %d recu ( %s )\n", m->type, m->text);
}
return 0;
}