50 lines
831 B
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;
|
|
}
|