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;
|
||
|
}
|