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